プロジェクトファイルのPathに移動する
$ cd (プロジェクトのディレクトリ)
Laravelプロジェクトファイルを作成
ディレクトリでLaravelをインストールする(今回はLaravel 5.5系で行う)
$ composer create-project --prefer-dist laravel/laravel HerokuLaravel "5.5.*"
$ cd HerokuLaravel
herokuにログイン
$ heroku login
# Email: $ xxx@gmail.com
# Password: $ *******
Logged in as xxx@gmail.com
herokuにLaravelアプリのためのアプリを作成
herokuアプリを作成する
$ heroku create laravel-mysql --buildpack heroku/php
heroku-laravel
がherokuで表示されるアプリ名
$ git init
$ heroku git:remote -a <herokuのアプリ名>
$ git add .
$ git commit -m "make it better"
$ git push heroku master
ターミナルからherokuアプリを開く
$ heroku open
サイト表示。 (ただし、エラーです)
Heroku Procfileの作成
用途がよくわかりませんが、プロジェクト直下にProcfileを作成
$ touch Procfile
HerokuLaravel
のプロジェクトファイルにProfile
が作成される。
Procfile
をそのまま編集します。(ファイルの中身は空でした)
web: vendor/bin/heroku-php-apache2 public/
Procfile.txt
ではないが便宜上。
そのあと、もう一度herokuに変更点をプッシュする
$ git add -A .
$ git commit -m "Add Procfile"
[master 32ec3cc] Add Procfile
1 file changed, 1 insertion(+)
$ git push heroku master
Counting objects: 3, done.
herokuのアドオンにPostgreSQLを作成する
$ heroku addons:create heroku-postgresql:hobby-dev
各種設定
編集リクエスト頂いて初めて知りました。2パターンあります。
-
- 一括設定 (@SUZUKI_Masaya さんより)
-
- 個別設定
一括設定の場合
$ heroku config:set DB_CONNECTION=pgsql $(heroku config:get DATABASE_URL | awk '{print gensub(/postgres:\/\/(.+):(.+)@(.+):5432\/(.+)/, "DB_USERNAME=\"\\1\" DB_PASSWORD=\"\\2\" DB_HOST=\"\\3\" DB_DATABASE=\"\\4\"", "g")}')
[結果]
Setting XXX
個別設定の場合
$ heroku config:get DATABASE_URL
# メモしよう
postgres://<ユーザ名>:<パスワード>@<ホスト>:5432/<DB名>
$ heroku config:set DB_CONNECTION=pgsql
$ heroku config:set DB_HOST=<ホスト>
$ heroku config:set DB_DATABASE=<DB名>
$ heroku config:set DB_USERNAME=<ユーザ名>
$ heroku config:set DB_PASSWORD=<パスワード>
[結果]
Setting XXX
DBのマイグレーション
Do you really wish to run this command? (yes/no) [no]
で止まったら y
oryes
を入力してEnter。
$ heroku run php artisan migrate
Do you really wish to run this command? (yes/no) [no]:
> y
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
マイグレーションをやり直したい場合
# (マイグレーションをやり直したい場合)
> heroku run php artisan migrate:refresh --seed
アプリの情報を設定する
$ heroku config:set DEBUGBAR_ENABLED=true
$ heroku config:set APP_KEY=$(php artisan key:generate --show)
サイトを表示
$ heroku open
これで行けると思います。
herokuへのアップデート
次からリリースのたびにherokuにソースコードやDBをpushしたい場合は
# ソースコードをあげる
$ git add -A .
$ git commit -m "コミットメッセージ"
$ git push heroku master
# DBに変更があった場合
# マイグレーションとシーディングを実行
$ heroku run php artisan migrate --seed
で更新できる。
2、3度失敗したため、本番で失敗したくないのでメモがわりに残します。
次はMySQLでの設定方法をなんとかしたい(願望)。
補足
こちらを参考にされる方はこのやり方の賞味期限はだいたい3ヶ月なのでそれを過ぎるとこれで出来るかは保証できませんのでまたググってください。