2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel(5.8)をHerokuにデプロイする

Last updated at Posted at 2019-09-02

概要

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
2
4
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
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?