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

Windows上のApacheがPHPのpreg_match_all()でクラッシュしたので調べてみた - スタジオ・アルカナ技術ブログ
https://www.s-arcana.co.jp/tech/2012/03/apache-crashed-using-php-preg-match-all-on-windows.html


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-06-06 (火) 05:02:24