Windows環境でPukiWikiを動かすとhttpdが落ちる

この記事を書いたのは 2014/05/30 です

WindowsにApache 2.2.24+PHP 5.4.5を入れた環境にPukiWiki 1.4.7を設置したときの話です。

FrontPageの表示まではすんなり行きましたが、「テキスト整形のルール」のページを開こうとすると "サーバに接続できません"とChromeに怒られました。

Apacheのエラーログには

[Sat Mar 15 23:53:12 2014] [notice] Parent: child process exited with status 255 --- Restarting.

とあり、どうやらhttpdがクラッシュしてしまった様子。

原因

公式サイトに情報が載っていました。

長大な文字列を正規表現系の関数に渡したときに、スタックオーバーフローを起こしてしまうことが原因だそうな。

対処

httpd.exe のスタックサイズを大きくしてやります。

Microsoftのサイト から Visual Studio をダウンロードしてインストール。
`C:\Program Files\Microsoft Visual Studio *.*\VC\binにあるeditbin.exe` を cmd から起動します。「mspdb*.dllがないため~」と怒られる場合は、同じDOS窓で同フォルダの `vcvars32.bat` を走らせた後、同じ操作を繰り返します。

スタックサイズを変更するには次のコマンドを実行します。`4194304` は 4*1024*1024 で4MBです。ちなみにデフォルトは256KBです。当然ですがhttpdは終了させておきましょう。

editbin /stack:4194304 httpd.exe

thanks

WindowsのPHPでエラーが発生するので、スタックサイズを増やして解決する - uzullaがブログ
http://uzulla.hateblo.jp/entry/2013/08/14/230551


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS