話題のPHPフレームワークLaravelアプリをHerokuにデプロイしてみる


普段はRailsばかり使っているんですが、ちょっとPHPも思い出してみようということで、話題(?)のフレームワーク『Laravel』に手を伸ばしてみました。また、最近PHPをベータサポートしたということなので、herokuにデプロイしてみることにします。

環境

  • Mac OS X 10.8
  • PHP 5.5
  • composer 1.0.0-alpha8

Laravelアプリの作成

composerがインストールされていることが前提です。まだインストールしていない方は公式ページを参考にしてみてください。コマンド1行で済みます。

https://getcomposer.org/doc/00-intro.md#installation-nix

composerコマンドでプロジェクトを作成します。

<プロジェクト名>にはお好きな名前をどうぞ。カレントディレクトリに同名のディレクトリが生成されるはずです。ここでは便宜上brownbearというプロジェクト名で説明します。

[ Mcrypt PHP extension required.というエラーが出る方 ]

mcryptがインストールされていませんのでインストールしてください。ググると色々出てくると思います。以下はhomebrewでphpをインストールした場合のインストール例です。

無事Laravelプロジェクトが作成できたら、プロジェクトディレクトリに移り動作を確認しておきます。

artisan(フランス語で「職人」という意味)コマンドに serveオプションを渡すと、PHPのビルトインWebサーバが起動します。http://localhost:8000 をブラウザで開いてみます。

動作確認

無事シンプルかつエレガントな画面が表示されました。

Herokuにデプロイする

まずは、gitレポジトリを作成します。

次に、heroku上にレポジトリを作成します。

さっそくheroku上にプッシュしてみましょう。

早々にエラーが出てしまった・・・。 composer.lockがねえぞコラ的な、あたたかいメッセージですね。従いましょう。

Laravelアプリのデフォルトの .gitignorecomposer.lockが登録されているのが原因です。この行を削除してください。

git add, commit して、再度 git push heroku masterします。正常にデプロイが完了するはずです。ブラウザを開いて確認してみましょう。

403

403! これはapacheのルートディレクトリが間違っているからです。Herokuは  Procfile でwebプロセスをコンフィグレーションすることができるようになっています。カレントディレクトリにこのProcfileを作成します。

これでルートがLaravelプロジェクト直下のpublicになります。では最後のpushを実行した後、ブラウザで確認してみてください。

デプロイ完了

無事ロゴが表示されました! デプロイ完了です。

関連する記事