HerokuとPHP
Herokuでは以下の環境がサポートされています。The Celadon Cedar Stack | Heroku Dev Center
ここにPHPが無かったので動かないものだと勘違いしていたのですが、リストのうちFacebookとはFacebookアプリのことで、Ruby, Node.js, Python, and PHPがサポートされています。なのでPHPを動かす事ができるようです。
buildpackについて
HerokuでPHPを動かす事ができる事はわかりましたが、標準環境のままでは不十分です。標準のままだとmbstringが使えません。そこでbuildpackを使用します。buildpackとは、アプリケーションがデプロイされた時に指定したコマンドを実行してくれるもので、herokuが公式に用意したものや、ユーザーが作成したものがあります。
今回はphp向けに作成され、mbstringsが扱えるbuildpackを導入しましょう。最終的にこちらのbuildpackを使用しました。
iphoting/heroku-buildpack-php-tyler ・ GitHub
手順
buildpackを導入してアプリを作成。アプリ名を指定する場合はここで指定。heroku create -s cedar -b git://github.com/iphoting/heroku-buildpack-php-tyler.git アプリ名アプリに必要なファイルをgitに入れてから、ファイルをherokuへ
git push heroku master以上でphpアプリをherokuで動かす事ができます。
heroku上のphpからredisを使う
今回はキャッシュも使いたかったので、redisを入れました。Herokuにて無料で提供されているのは、Redis to goというAdd onですのでこれを使います。redisに接続するには環境変数からREDISTOGO_URLを取ってくれば可能です。詳細は以下のサンプルを参考にしました。
ryanbrainard/php-redis-heroku-demo ・ GitHub
今回作成したサイト
今回作成したサンプルです。phpをherokuで動かす事に主眼を置いたので内容は適当です。公式のSDKのphp SDKがMIT Licenseで提供されており、今回はこちらをほぼそのまま使いました。http://ra-info.herokuapp.com/
また、テンプレートエンジンであるsmartyも軽く試した所、普通に動かす事ができました。
http://amarank.herokuapp.com/
参考
概要・HerokuのBuildpackを利用してmbstringが有効なPHPサーバを立ててみた - hnwの日記
・4時間耐久 PHP on Heroku
・Heroku上に最新のPHP5.4 + nginx環境を30秒で構築する - へびにっき
buildpackの情報
・Buildpacks | Heroku Dev Center
・Heroku上に最新のPHP5.4 + nginx環境を30秒で構築する - へびにっき