- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2023-06-05T15:20:17+00:00","default:mogamin","mogamin")
#author("2023-06-05T20:02:24+00:00","default:mogamin","mogamin")
* Windows環境でPukiWikiを動かすとhttpdが落ちる [#n2538597]
|この記事を書いたのは 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がクラッシュしてしまった様子。
** 原因 [#e435e55b]
[[公式サイト:http://pukiwiki.sourceforge.jp/?PukiWiki%2FInstall%2FWindows#ncf2321d]]に情報が載っていました。
長大な文字列を正規表現系の関数に渡したときに、スタックオーバーフローを起こしてしまうことが原因だそうな。
** 対処 [#g2b68769]
httpd.exe のスタックサイズを大きくしてやります。
[[Microsoftのサイト:http://www.visualstudio.com/downloads]] から Visual Studio をダウンロードしてインストール。
`C:\Program Files\Microsoft Visual Studio *.*\VC\binにあるeditbin.exe` を cmd から起動します。「mspdb*.dllがないため~」と怒られる場合は、同じDOS窓で同フォルダの `vcvars32.bat` を走らせた後、同じ操作を繰り返します。
`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 [#iade5c58]
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