LoginSignup
14
15

More than 5 years have passed since last update.

LaravelのAppをHerokuにデプロイ

Last updated at Posted at 2016-09-30

PaasであるHerokuでLaravelをDeployする方法。

Heroku

  • PHPが利用可能なPaaSサービス
  • サーバーの知識がなくてもデプロイあk脳

PaaS

  • クラウドサービスの1つ
  • サービス側がめんどくさいところをやってくれる
  • VPSとかにくらべるとインフラの管理・構築は劇的にラクになる

Heroku以外のPaaSではPHPが使えないものもある。
他のクラウドサービスとしてIaaS(例:Amazone EC2)、SaaS(例:Google Apps)などがある。

補足:レンタルサーバー / VPS のデメリット

レンタルサーバー

細かい設定、セキュリティとかちゃんとできない

VPS

一からできるけど大変、セキュリティやパッチ(プログラムの修正や更新のこと)が大変

準備

  1. Herokuアカウントの作成
  2. Herokuの管理画面からアプリケーションを作成(名前がアドレスになる)
  3. Heroku toolbeltをインストール(ターミナルでherokuを打っていろいろ出てきたら入ってる)

Heroku Procfileの作成

  • Heroku上でサーバーを立ち上げるために必要なファイル
  • サーバーのほか、ワーカーを立てることも可能
  • $git pushしたときにどんなファイルを立ち上げるかを書く
web: vendor/bin/heroku-php-apache2 public/

と中に記述する。
ワーカー(サーバーと違ってずっと動き続けるようにする)にしたい場合はweb以外の名前でProcfile中に記述する。

アプリケーションキーの設定

.envAPP_KEYを管理画面 Settings > Config Variables に書く。

Config Variablesの中身をコンソールに表示する

heroku config
heroku config -s

にすると.envファイルにそのまま貼れる形になる。

Herokuにデプロイ

{appname}は準備の2.で決めた名前。

# git のリモートを追加
heroku git:remote -a {appname}

# deploy
git push heroku master

# 確認 
heroku open

エラーになりがちなこと

キーの設定し忘れ。
管理画面の Settings > Config Variables でAPP_KEYを設定。

Heroku Buildpackの設定について

作成されるインフラのベースとなるもの。
勝手に設定してくれていることもあるが、.package.jsonの構成からNode.jsになってることもあるらしい。

その場合はCLI経由で

heroku buildpacks:set heroku/php

とするか、管理画面の Settings > Buildpacks で設定する。

GitHubと連携

管理画面の Deploy

  • Deployment method をGitHubにする
  • App connected to GitHub / Automatic deploys も設定する

Automatic deploys を設定しておくことで、GitHubにpushすると同時にherokuにもpushされるようになる。

エラーになりがちなこと

GitHubにProcfileをpushし忘れる。

Logを見る

heroku logs

監視(tail mode)する場合は

heroku logs -t

アドオン

Herokuの拡張機能とか。
「メール系」「監視系」「ログ系」「キャッシュ用」などがある。

Heroku Postgres

アドオンの1つ。
検索して追加すれば、自動的に設定のConfig Variablesにurl(Heroku PostgresのDBアドレス)が入る。

postgres://{username}:{password}@host:port/{dbname}

LaravelのDBnameとかをConfig VariablesにいれたらOK。

その他メモとか

pushするたびに前のサーバーは捨てられる

前にpushしたときの状態に戻したいときは管理画面の Activity > Roll back から。

Resourcesからプランを追加できたりする

アカウントの設定からクレジットカードも登録すればそれだけで拡張機能も使えるようになる。

HerokuのDBとHerokuの上のLaravelは別物

Heroku Postgresを使うのであればConfig valueをかきかえる。

参考サイトとか

14
15
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
14
15