概要
Herokuにリリースした際にやった事を記録として残しておく
App周りの設定
Appの作成
$ heroku create app-name
buildpackの追加
これを設定する事でcomposerやnodejsがライブラリを追加してくれるようになります。
$ heroku buildpacks:add heroku/php
$ heroku buildpacks:add heroku/nodejs
DB周りの設定
AppにDBを追加
$ heroku addons:create heroku-postgresql:hobby-dev -a app-name
DBの情報の確認
DB情報はHeroku側で自動で決めてくれるため、下記のコマンドで確認して後ほど環境変数にセットする
$ heroku pg:credentials:url -a app-name
環境変数の設定
.envだと環境毎に値が変わって不便なため、Herokuにリリースする場合はサーバに環境変数をセットするとよい。
環境変数設定コマンド
$ heroku config:set TZ=Asia/Tokyo -a app-name
一般的に使うであろう環境変数
- APP_NAME=Laravel
- APP_ENV=production
- APP_KEY=
- APP_DEBUG=false
- APP_URL=
- LOG_CHANNEL=stderr
- DB_CONNECTION=pgsql
- DB_HOST=
- DB_PORT=5432
- DB_DATABASE=
- DB_USERNAME=
- DB_PASSWORD=
Deploy周りの設定
Procfileの作成
このファイルを作成する事でミドルウェアの設定や、デプロイ時にコマンドを走らせたりできるようになる。
release: ./heroku-entrypoint.sh
web: vendor/bin/heroku-php-nginx -C .heroku/nginx/nginx.conf public/
- heroku-entrypoint.sh(名前はなんでもよい)はデプロイ時に実行する内容をシェルに書いています。
- webにはnginxの設定ファイルの場所を記載します。個人的にインフラ系のファイルはドットディレクトリにまとめているので上記の場所にしてありますが、実際はどこでも大丈夫です。
nginxの設定ファイル
.heroku/nginx/nginx.conf
location / {
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /index.php$1 last;
}
Deploy時のBuild設定
HerokuにDeployする時にフロントエンド周りのbuildをしたい場合はpackage.jsonに下記の項目を書き足す事で実行してくれるようになります。
package.json
"postinstall": "npm run prod"
HerokuにDeploy
Deploy
masterブランチをherokuにpushする事でリリースされます
$ git push heroku master
確認
$ heroku open