XAMPP Lite 1.7.0 でApacheが落ちる件。 [notice] Parent: child process exited with status 3221225477 — Restarting.
XAMPP Lite 1.7.0 を使っていると、Apacheが落ちました。
解決は出来たので、メモしておきます。
検索した感じ、XAMPP 1.7.0 でも XAMPP Lite 1.7.0 でも発生しているようです。
これを書いてる今は 1.7.2 がリリース済みですが、これで発生するか直ってるかは分かりません。
エラー内容
c:\example\xampplite\apache\logs\error.log
[notice] Parent: child process exited with status 3221225477 — Restarting.
原因
すいません、よく分かってません。
検索した情報を元に、やってみたらエラーが回避できちゃった系です。
googleでは完全マッチの症例は見当たらなかったが、php_pdo_mysql.dllの
http://www.dalf.jp/wiki/php/doku.php?id=dalf-php-type1-01000001-001
このバージョン(Ver.5.2.8.8)による不具合はいくつか見ることが出来た。
その中では、php_pdo_mysql.dllや、libmysql.dllを入れ替える対応策がとられていた。
ただ、なぜそのような対応を行ったかという明確な理由(概ね最新版だから)が
記されているものはなかった。
この様に、明確な原因が分かるところがないのか、対策が様々みたいです。
回避策
c:\example\xampplite\php\libmysql.dll c:\example\xampplite\apache\bin\libmysql.dll
上記2ファイルを退避。*1
それぞれ同じ場所においてある libmysql_5.0.51a.dll を複製して libmysql.dll にリネーム。
要するに libmysql.dll の代わりに libmysql_5.0.51a.dll を使うようにしました。
注意
c:\example\xampplite\mysql\bin\libmysql.dll
前述の引用元では、3つの libmysql.dll を入れ替えると書いてありました。
しかし、これはファイルサイズも違うし libmysql_5.0.51a.dll も置いてなかったので、入れ替えていません。
結果として入れ替えたのは2つの libmysql.dll ですが、エラーは回避できました。
参考
- http://www.dalf.jp/wiki/php/doku.php?id=dalf-php-type1-01000001-001
- XAMPP 1.7.0でMySQLアクセス時にApacheが落ちるとき – 秋元
それぞれ、こことは違う微妙に異なる回避策が書いてあります。
どの回避策を採用するかはさておき、目を通しておくと原因がなんとなく分かるかもしれません。
*1:zip圧縮してlibmysql.zipとして同じフォルダに残しました。