老いぼれエンジニアには隠す爪がない

この時代に老いぼれを見たら、「生き残り」と思え…!

herokuでPHPアプリを動かそうとしてハマった

エンジニア系のサイトに投稿するのも恥ずかしいので自分のブログに書く。

Azureのお試しで機嫌よくPHPアプリが動いてくれて喜んでいて、ただAzureにしてもAWSにしても有料だからお遊びでアプリをデプロイするのはちょっとね・・・と思って探していたところHeroku | Cloud Application Platformというサービスがあることを知った。

なんとタダで(制約はあるが)Webアプリをデプロイできちゃうという恐るべきサービス。使わない手はない(聞くところによるとfacebookのアプリプラットフォームとしてもよく使われているそうなので、そのうち勉強してfacebookアプリも作ろうかと思ったりしている)。

最近PHPの勉強を始めたので、過去作っていたPerlのアプリをPHPに書き換えたものがすでにあった。いくつか初期設定が必要だが、基本としてはGitリポジトリをherokuにpushすれば自動的にデプロイが完了する。

だがどうにもうまく動いてくれない。よく調べるとheroku logsというコマンドでログが見れるそうなので見てみると、mbstring系の関数がないといって怒られているようだ。普通ならphp.iniを編集して・・・となるのだが、なにせ相手はherokuなのでどうやってphp.iniを編集できるのかがわからない。

で、結論だがアプリケーションのベースフォルダにcomposer.jsonというファイルを入れ、以下のように記述すれば解決。

"ext-mbstring": "*"の業がミソ。

ついでに言うと、composer.jsonの文法では}の前の,はシンタックスエラーになるようだ。

JSON記法では許可されているはずなのだけど・・・。

散々既出かもしれないけど、ちょっと前のherokuの仕様に基づいた情報とかがいっぱいあってハマったので、憂さ晴らしに晒しておく。