HerokuにLaravelのコードをデプロイして動かすまでの手順を説明します。
大まかにいうと、Herokuリポジトリクローン→Laravelインストール→Herokuにpushという流れです。
この記事の内容
Herokuのアプリケーションを作成する
Herokuのappを作っておきます。
下記のherokuコマンドか、Herokuのダッシュボードからアプリを追加します。
> heroku login > heroku create アプリ名
Laravelのインストール
アプリ名のディレクトリ内にLaravelをインストールします。
> composer create-project --prefer-dist laravel/laravel アプリ名
Herokuのリポジトリを追加する
> cd アプリ名 > git init > heroku git:remote -a アプリ名
Procfileを追加する
Herokuでドキュメントルートをpublic/以下になるように設定するため、Procfileというものを作成しておきます。これがけっこう忘れがちになります。
ファイルの中身は以下です。
web: vendor/bin/heroku-php-apache2 public/
これをやっておかないと、403エラーになります。
Heroku内で.envを作成させる
Laravelの.env はgit管理外なので、Heroku用の.env.heroku を用意しておき、デプロイの際にHerokuサーバー内で.env.heroku を.env にコピーするようにします。
まずローカル環境で.env.herokuを作っておきます。
> cp .env .env.heroku
次にcomposer.jsonを編集しておきます。
… "scripts": { "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate" ], "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover" ], ↓この部分を追加 "compile": [ "@php -r \"file_exists('.env') || copy('.env.heroku', '.env');\"" ] }, …
これをやっておかないと500エラーになります。
Herokuにデプロイする
$ git add . $ git commit -am "make it better" $ git push heroku master
これでhttps://アプリ名.herokuapp.com/ にアクセスすればLaravelの初期画面が表示されるはずです。
おまけ:ローカル環境でSSLが動かない場合
Laravel Homesteadを使っている場合、後からアプリケーション用のディレクトリを作るとSSLが上手く動かない事があります。
そんな時はいちどVagrantの仮想マシンを抜けて、vagrant provision をやり直せばOK。
自己証明書が自動的に設定されます。
コメント/ピンバック
[…] LaravelをHerokuにデプロイするまでに最低限やる事。 […]