Windows 7 で実行されている Apache のスタック サイズを増やすにはどうすればよいでしょうか? 質問する

Windows 7 で実行されている Apache のスタック サイズを増やすにはどうすればよいでしょうか? 質問する

Windows 7 の Apache サーバー上で cakePHP アプリケーションを実行すると、スタック オーバーフローが発生すると思います。

ベストアンサー1

この問題は、Apache のデフォルトのスタック サイズが小さいため、Windows プラットフォームでより頻繁に発生します。Windows のデフォルトのスタック サイズは 1 MB ですが、Unix/Linux プラットフォームの 8 MB とは異なります。これが、たとえば一部の PHP スクリプトが Linux では正常に動作するのに対し、Windows では Apache がクラッシュする理由である可能性があります。

さらに、衝突は静かである(セグメンテーション違反) の場合、エラー メッセージは表示されず、Apache は応答を停止し、子プロセスが再起動されます。ブラウザーはデータを取得せず、空白のページを表示するため、何が問題なのかを判断するのは少し困難です。

これは、PHP の長い正規表現

Apache のエラー ログにのみ、子プロセスがクラッシュしたことを示す通知が 1 つあります。

Parent: child process exited with status ... -- Restarting

Apacheのスタックサイズを変更する最良の方法は、スレッドスタックサイズApacheの設定ファイルには、スレッドスタックサイズApache のドキュメントのディレクティブ:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#スレッドスタックサイズ

したがって、Windows 上の Apache のスタック サイズの増加は次のようになります。

<IfModule mpm_winnt_module>
   ThreadStackSize 8388608
</IfModule>

これらの行はApacheの設定ファイルに記載する必要があります。簡単にするために、次のように記述します。confファイルまたは、より良い方法として(必須ではありませんが)、httpd-mpm.confファイルとconfファイルこの行のコメントを解除します:

Include conf/extra/httpd-mpm.conf

Apache のスタック サイズを 8 MB に設定するので、Linux のデフォルト値と同じになります。

Apache を再起動することを忘れないでください! :)

おすすめ記事