User:
Pass:
Keep:   
Xoops Cube Project
XOOPS Cube Project Site
Powered by Google


Powered by XOOPS Cube Legacy 2.1.8
PukiWikiMod 1.5.1
WordPress Module 0.6.0 Alpha

2004年4月14日(水)

Win32用Apache2のスタックサイズ

カテゴリー: - のぶのぶ @ 13時15分42秒

PHPで、PukiWikiの用にでpreg_replace_callback関数を使って、大きなサイズのテキストに対して、複雑な置き換えをしようとするときに、Linux環境下のApache2+PHP4ではうまく実行できても、Win32環境下で実行するとApacheごとこけてしまうというトラブルにここ数ヶ月悩まされていた。
Win32環境でも、PHP4をCGIとして稼働させてやればうまくいくし、Apache1.3環境下でPHPのsapiモジュールを動かしても問題ないので、てっきりPHP4のApache2用sapiモジュールに問題があるのだと思っていた。
ふとしたきっかけで、php.netのバグデータベースにpreg_replace_callbackが落ちる原因は、スタックがオーバーフローしているからだという事を知った。
PHP4のApache2用sapiモジュールはDLLだから、結局はApache2のApache.exeをビルドする時のスタックサイズ指定が小さすぎるという事になる。
というわけで、Apache.exeをスタックサイズを大きめに再指定してビルドしてやったら、確かに今までこけていたスクリプトがうまく実行されるようになった。

参考ページ


コメント

このコメントのRSS

この投稿には、まだコメントが付いていません

コメントの投稿

ごめんなさい、現在コメントを付けることは出来ません

59 queries. 0.020 sec. - Mem:4272bytes
Powered by WordPress Module based on WordPress ME & WordPress

カレンダー
2004年 4月
« 3月   5月 »
 123
45678910
11121314151617
18192021222324
252627282930  
投稿者別一覧
アーカイブ(月別)
カテゴリ一覧
ブログ内検索