メンチカツ

ロースカツが好きです

10.8 Mountain Lion から 10.9 Mavericksへアップグレードしたらapacheのphpサイトが死んだ

バーチャルホストで用意してある複数のサイトのうち、htmlのサイトは平気なのに
phpのサイトだけ

[notice] child pid XXX exit signal Segmentation fault (11)

これがでる。

クラッシュレポートを見てみると、libphp5.soの読み込みの途中で息絶えてた。
アップグレードで再インストールされたApachePHPのバージョンが合ってない?
と思いphpのバージョンを5.5へあげてみる。

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

んで、LoadModule php5_moduleを以下に変えてみた。

/usr/local/php5-5.5.XXXX/libphp5.so

結果、動作するようになった!と思いきや、アプリケーション内で使用してる
aws-sdkのSimpleDBのとこで

Maximum function nesting level of XXX reached, aborting!

を返す。

Fixed circular to string method in simplexml #39
https://github.com/amazonwebservices/aws-sdk-for-php/pull/39

PHP 5.3.10では出ないけど、PHP 5.4.7で発生するエラーらしい。
Fixed案件なのでSDKのバージョンを上げれば解決なんですが、ここはPHP
バージョンを5.3に落とすことにした。

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.3

そしてlibphp5.soを5.3に差し替え。ようやく動作するようになりました。
ここまでありつくのに、gdbで動作させたり、その準備でXcodeのコマンド
ラインツールいれたりと無駄にすごい時間を費やしてしまった。