2012年3月22日木曜日

PHP 5.4.0 + APC 3.1.9でapacheが再起動できないらしい



PHP5.4.0の動作検証など行っていますが、
一見問題ないように見えます。
とはいえ、まだリリースしたばかりなのでいろいろあるものですね。

かゆいところで、Apacheが再起動(restart or graceful)できないという現象がありました。
ちなみに、停止(stop)、起動(start)は問題なくできます。
そんな環境はこちら


  • Cent OS 6.2

  • Apache HTTP Server 2.2.22

  • PHP 5.4.0 + APC 3.1.9



再起動すると次のログが出力されhttpdが起動しません。


[Thu Mar 22 10:32:38 2012] [notice] seg fault or similar nasty error detected in the parent process


stop、startでは問題なくhttpdの起動と停止ができます。
また、apcを外すとこちらも問題なかったためやはりapcが原因のようです。
念のため、pecl apcのリポジトリから最新版をインストールしてみました。

pecl apcをリポジトリからインストール




svn co http://svn.php.net/repository/pecl/apc/trunk/ apc-trunk
cd apc-trunk
phpize
./configure --enable-apc --with-php-config=/usr/local/php/bin/php-config
make
make install


すんなり再起動できました。
インストールしたapcの情報をphpinfo()で確認すると、













APC Supportenabled
Version3.1.9
APC DebuggingDisabled
MMAP SupportEnabled
MMAP File Maskno value
Locking typepthread mutex Locks
Serialization Supportphp
Revision$Revision: 324326 $
Build DateMar 22 2012 11:34:52

バージョンに変更はないですが、開発版なのでいろいろ違うのかと。

なんらかの事情?で、力技で乗り切るには、
apachectlに次の内容を追記します。

restart)
echo 'apache httpd stop'
$HTTPD -k stop
echo 'sleep 3'
sleep 3
echo 'apache httpd start'
$HTTPD -k start
ERROR=$?
;;


まあ、使わないと思いますが。




0 件のコメント:

コメントを投稿