HerokuでPHPのコマンドラインを使うには
Heroku上でPHPのコマンドラインを使おうとすると標準ではモジュールのロードに失敗したエラーメッセージが出てしまいます。
$ heroku run /app/bin/php
Running `/app/bin/php` attached to terminal... up, run.1
/app/bin/php: error while loading shared libraries: libmcrypt.so.4: cannot open shared object file: No such file or directory
これはどうやらビルドの問題らしいのですが、とりあえずの解決手段として環境変数を追加する方法がアナウンスされていました。
heroku config:set LD_LIBRARY_PATH="/app/php/ext"
上記の設定を行えば下記のとおりにコマンドラインのPHPが利用できます。
$ heroku run "/app/bin/php -v"
Running `/app/bin/php -v` attached to terminal... up, run.1
PHP 5.3.10 (cli) (built: Mar 26 2012 08:15:52)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
これさえあればsymfonyコマンドやcakeコマンドなどのコマンドラインを使ったフレームワークのタスク実行が可能になりますね。