前提
AWSアカウント取得・Cloud9環境の利用
AWSより「まずは無料で始める」をクリックして名前やメールアドレス、電話番号、クレジット決済情報などを入力します。
自動音声通話による電話認証があります。GitHubアカウント取得
Cloud9からGitHubへgitコマンドでcommit&pushできるようにしておきます。
Herokuアカウント取得
Herokuより「新規登録」をクリックして名前やメールアドレスを入力します。Herokuからメールが来るので、そこからアカウント登録完了します。
HerokuでMySQLを使いたい場合、ClearDB(=MySQL)をアドオン(追加)する必要があり、クレジット登録が必要です。ただClearDBはFree(無料)のプランで利用できます。クレジット情報は「Account setting」の「Billing」に入って登録します。
Herokuの初回設定
続けてHerokuへのデプロイに必要なツールをローカル環境にダウンロード&インストールします。
Herokuにログイン後、ダッシュボードから「Choose a language guide」よりRubyを選んで、「Set up」より、ツールをダウンロードしてインストールしてください。
Herokuへのデプロイ
共通事項
- GitHubにログインしリポジトリを(例えばdemoとし)作成します。
- Cloud9で作ったアプリを適宜、上記GitHubのリポジトリ(例えばdemo)にcommit&pushします。
(アプリケーションのホームで次のようにgitのリモート設定:初回のみ)
$ git init
$ git remote add origin https://github.com/[UserName]/demo.git
(ソースの改版都度、commit&push)
$
git add .
$ git commit -m "first commit"
$ git push -u origin master
Railsアプリの場合
以下Herokuツールを入れた自分の環境のターミナルで行います。
ログインします。
heroku login
アドオンでMySQLを使えるようにします。
heroku addons:add cleardb -a <AppName>
DB設定内容を確認します。
heroku config -a <AppName>
本番DB接続内容を設定し直しコミットます。
編集するファイル:config/database.yml
production内容は次の通りに変更します。
production: <%= ENV['CLEARDB_DATABASE_URL'] %>
続けて下のようにSettingよりDBコンフィグレーションを変更します。
mysql->mysql2に変更します。
本番環境のDBをコマンドで作ります。
heroku run "rails db:create RAILS_ENV=production" -a <AppName>
heroku run "rails db:migrate RAILS_ENV=production" -a <AppName>
デプロイが完了してから「Open app」で開きます。
Laravelアプリの場合
Laravelの場合は、プロジェクトホーム直下にProcfileを作成しコミットする必要があります。
web: $(composer config bin-dir)/heroku-php-apache2 public/
プロジェクトのソースをGithubにコミット&プッシュ後、以下Herokuツールを入れた自分の環境のターミナルで行います。
ログインします。
heroku login
アドオンでMySQLを使えるようにします。
heroku addons:add cleardb -a <AppName>
DB設定内容を確認します。
heroku config -a <AppName>
ここで得られた次のような接続情報をconfig:set で設定します。
mysql://****(USERNAME)****:****(PASSWORD)****@*****.cleardb.net/****(DBNAME)****?reconnect=true
(注意)DB接続情報を定義した.envはデフォルトではgit addで無視されますので、ここで環境変数として設定する必要があります。
heroku config:set DB_CONNECTION=mysql DB_HOST=*****.cleardb.net DB_PORT=3306 DB_DATABASE=****(DBNAME)**** DB_USERNAME=****(USERNAME)**** DB_PASSWORD=****(PASSWORD)**** -a <AppName>
本番環境のDBをコマンドで作ります。
heroku run php artisan migrate -a <AppName>
APP_KEYを取得しコンフィグとして設定します。
heroku run "php artisan --no-ansi key:generate --show" -a <AppName>
heroku config:set APP_KEY=**************************** -a <AppName>
すべて完了してから「Open app」で開きます。