[PHP-users 28419] PHP/5.1.2 と Apache/2.2.0 の worker

takumi onodera takkjoga @ gmail.com
2006年 2月 15日 (水) 12:03:13 JST


いつも参考にさせていただいております。小野寺と申します。

サーバを新たに構築していて、どうしてもよくわからないエラーが発生していて悩んでおります。

apache-2.2.0 と php-5.1.2
をソースコードからコンパイルしインストールしたのですが、いざページを作成して動作をさせてみると、一定のペースではないのですが、「ページが表示できません」となってしまいます。
サーバ機に直接 ssh でログインして telnet localhost 80
でページにアクセスした際にも、何回かに1回は出力が何もない状態でコンソールに返されてしまいます。

apache のコンフィギュアオプションは↓です。
./configure \
--prefix=/usr/local/apache \
--disable-authn-file \
--disable-authn-default \
--disable-authz-groupfile \
--disable-authz-user \
--disable-authz-default \
--enable-auth-digest \
--disable-cgid \
--disable-cgi \
--disable-autoindex \
--with-mpm=worker \
--enable-mods-shared="status info"

php のコンフィギュアオプションは↓です。
./configure \
--enable-mbstring \
--enable-mbregex \
--enable-maintainer-zts \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-pdo-mysql=/usr/local/mysql \
--with-zlib \
--with-zend-multibyte \
--without-sqlite \
--without-pdo-sqlite \
--without-iconv

uname -a は↓です。
Linux www.example.com 2.6.9-11.19AXsmp #1 SMP Fri Aug 5 05:28:32 EDT
2005 i686 i686 i386 GNU/Linux

apache のエラーログには↓のように出力されておりました。

[Tue Feb 14 21:03:52 2006] [notice] Apache/2.2.0 (Unix) PHP/5.1.2
configured -- resuming normal operations ←apacheの起動
[Tue Feb 14 21:04:37 2006] [notice] child pid 526 exit signal
Segmentation fault (11) ←phpinfo を出したらロゴの画像が切れたりして、下の何行も一緒にぼろッと出力
[Tue Feb 14 21:04:37 2006] [notice] child pid 556 exit signal
Segmentation fault (11)
[Tue Feb 14 21:04:46 2006] [notice] child pid 529 exit signal
Segmentation fault (11)
*** glibc detected *** double free or corruption (fasttop): 0x085bd620 ***
[Tue Feb 14 21:04:47 2006] [notice] child pid 698 exit signal Aborted (6)
[Tue Feb 14 21:05:24 2006] [notice] child pid 729 exit signal
Segmentation fault (11)
[Tue Feb 14 21:05:24 2006] [notice] child pid 731 exit signal
Segmentation fault (11)

google にて「exit signal segmentation fault」や「glibc
detected」などのように調べてみたのですが、どうも "php のバグ" のようなことが書かれていました。

試しに、apache のコンフィギュアオプションを減らして、worker を prefork にして、php も
enable-maintainer-zts を使用しないでインストールしなおしたら、上のようなエラーログは一切表示されなくなりました。

php 5.1系 がスレッドとの相性が悪いなどの現象があったりするのでしょうか?

情報をお持ちの方がいらっしゃいましたら、是非お教えいただきたく思います。


あとほんのちょっとだけ気になったことなのですが、「php」の「スレッド」あたりの検索をしていると、apache
のインストールされている環境への php
のコンフィギュア時に「--with-roxen=<dir>」を付けてインストールしているページを見かけることがたまにあったりします。
roxen のオプションが apache にも作用することがあるのでしょうか?


PHP-users メーリングリストの案内