先日来、自宅サーバのApache2.2が、下記ログを頻発し、勝手に再起動するようになっていた。
[notice] Parent: child process exited with status 3221225477 -- Restarting.
で、調べた結果、(そうだろうとは思っていたが)MySQL Serverに同梱されるlibmysql.dllがPHP5.3.2と合わないってのが原因だった。っていうか、PHP5.2時代にもあった。MySQL自体が持っているlibmysql.dllをPHPに食わせると、どうもうまく動かない。
PHP5.3系はlibmysql.dllを同梱していないので、PHP5.2系の最新バイナリからlibmysql.dllを抜き取って、PHP5.3に食わせてみた。不具合はなくなったようだ。
libmysql.dllの食わせ方も
- C:/Windows フォルダにlibmysql.dllを配置する。
ではなく、
- C:/Server/Apache2.2/bin フォルダと、C:/Server/Ruby/bin フォルダにlibmysql.dllを配置する。
に変更した。有効範囲を限定したってこと。
う~ん、これってPHPerには常識?