LaravelをHerokuにデプロイするまでに最低限やる事。

HEROKU Laravel サービス フレームワーク

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。

自己証明書が自動的に設定されます。

コメント/ピンバック

  1. […] LaravelをHerokuにデプロイするまでに最低限やる事。 […]

タイトルとURLをコピーしました