LoginSignup
2
3

More than 5 years have passed since last update.

Cloud9->GitHub経由でHerokuにLaravel or Railsアプリをデプロイする方法

Last updated at Posted at 2018-10-14

前提

  1. AWSアカウント取得・Cloud9環境の利用
    AWSより「まずは無料で始める」をクリックして名前やメールアドレス、電話番号、クレジット決済情報などを入力します。
    自動音声通話による電話認証があります。

  2. GitHubアカウント取得

  3. Cloud9からGitHubへgitコマンドでcommit&pushできるようにしておきます。

  4. Herokuアカウント取得
    Herokuより「新規登録」をクリックして名前やメールアドレスを入力します。Herokuからメールが来るので、そこからアカウント登録完了します。
    image.png

HerokuでMySQLを使いたい場合、ClearDB(=MySQL)をアドオン(追加)する必要があり、クレジット登録が必要です。ただClearDBはFree(無料)のプランで利用できます。クレジット情報は「Account setting」の「Billing」に入って登録します。

Herokuの初回設定

続けてHerokuへのデプロイに必要なツールをローカル環境にダウンロード&インストールします。

Herokuにログイン後、ダッシュボードから「Choose a language guide」よりRubyを選んで、「Set up」より、ツールをダウンロードしてインストールしてください。
image.png

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 
  1. Herokuでアプリを新規作成します。AppNameはHerokuで公開されるサービスのホスト名になります。
    image.png

  2. デプロイの設定でGithubを選択し、先ほどコミット&プッシュしたリポジトリと接続します
    image.png

  3. デプロイします。
    スクリーンショット 2018-10-14 21.53.36.png

Railsアプリの場合

以下Herokuツールを入れた自分の環境のターミナルで行います。

ログインします。

heroku login

アドオンでMySQLを使えるようにします。

heroku addons:add cleardb -a <AppName>

DB設定内容を確認します。

heroku config -a <AppName>

本番DB接続内容を設定し直しコミットます。
編集するファイル:config/database.yml
production内容は次の通りに変更します。

config/database.yml
production: <%= ENV['CLEARDB_DATABASE_URL'] %>

続けて下のようにSettingよりDBコンフィグレーションを変更します。
mysql->mysql2に変更します。
スクリーンショット 2018-10-14 21.53.20.png

本番環境の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>

デプロイします。
スクリーンショット 2018-10-14 21.53.36.png

本番環境の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」で開きます。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3