開発部の新坂です。
Herokuでは、Ruby on RailsやJavaが正式にサポートされています。(PaaSに関する参考記事)
PHPは動かないの?どうなの?という声が当然にあるのですが、Buldpackを使うことで(正式サポートではないものの)PHPも動作します。
PHPは動かないの?どうなの?という声が当然にあるのですが、Buldpackを使うことで(正式サポートではないものの)PHPも動作します。
小さなアプリケーションの動作させるにはお手軽ですね。
現実的にアプリケーションをデプロイするとなると、素のPHPではなく、フレームワークを使用する場面が多いと思います。今回はHerokuへのSymfony2フレームワークデプロイを試してみました。
手元(ローカル)の環境
各コマンドについては準備してあるものとします。また、Herokuのアカウント、gitコマンドも必要です。
Ruby
$ ruby -v ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Heroku Toolbelt
$ heroku version heroku-toolbelt/2.40.1 (x86_64-linux) ruby/2.0.0
Composer
$ composer (logo snip) Composer version 9b70b89b8f8d60b56b5900ea232109427604c748
Symfony2プロジェクトをローカルに作成
Composerを使い、ローカル環境にSymfony2プロジェクトをインストールします。
最後にDBやメールの設定を尋ねられますので、テキトー(or適切)に入力します。$ composer create-project symfony/framework-standard-edition sample-prj 2.3.4
Symfonyプロジェクトの動作確認
$ cd sample-prj $ php app/console server:run Server running on localhost:8000
ブラウザで確認できます。
必要なファイルを作成
使用するBuildpackにもよるのかもしれませんが、下記2つのファイルを作成することでデプロイ可能となります。ファイル位置はプロジェクトディレクトリからのパス(今回であれば、sample-prj/からのパス)となります。
index.php
空のファイルを作成します。$ touch index.php
app/config/parameters_prod.yml.erb
空のファイルを作成します。$ touch app/config/parameters_prod.yml.erb
gitで管理
プロジェクトディレクトリ(今回は sample-prj)で下記コマンドを実行します。$ git init $ git add . $ git commit -m 'first commit'
アプリケーションを実装
なんか作りましょう。$ php app/console generate:bundle (snip) Bundle namespace: Sample/TestBundle (snip) Configuration format (yml, xml, php, or annotation):yml (snip) You can now start using the generated code!
Webサーバー動作
$ php app/console server:run Server running on localhost:8000
ブラウザで確認
コミットします
$ git add . $ git commit -m 'created sample application'
Herokuにアプリケーション作成(with Buildpack)
Herokuにアプリケーションを作成します。 ここで、ビルドパック(https://github.com/sumkincpp/)を利用させていただきます。プロジェクトディレクトリ(今回は sample-prj)で下記コマンドを実行します。
$ heroku apps:create symfony2-sample-project -s cedar -b git://github.com/sumkincpp/heroku-buildpack-symfony2.git
Herokuにデプロイ
gitコマンドでHerokuへpushします。簡単ですね。$ git push heroku master