2014-4-13日補充:
今天本地搭建了相同環境進行測試,最終發現問題所在,原來是由於php.ini中加載zend擴展的時候,用的extension進行引用
[Zend]
zend_loader.enable=1
zend_loader.disable_licensing=0
extension=/usr/local/zend/ZendGuardLoader.so
紅色標記位置該改爲 zend_extension即可。
===========================================================================
近日新開的vps都是centos6的,按照往常一樣配置好web服務器,如下:
httpd/2.2.15
php/5.3.3 with eAccelerator with Zend Guard Loader v3.3
修改好apache配置文件後,習慣性的先檢查配置文件
/etc/init.d/httpd configtest
一切正常,然後重新加載配置文件
/etc/init.d/httpd reload
本來應該是一切無誤的,打開網址測試,竟然無法打開,檢查apache運行狀態,竟然掛了/etc/init.d/httpd status
看來是有問題,百度&google一陣後無果,手動開啓apache,測試了下,只有reload纔會掛掉,暫且擱置了,先把網站上線再說。運行了幾日,毫無突然掛掉的跡象,僅僅在error_log中看到有大量級別爲notice的錯誤如下:
[Wed Apr 09 00:10:17 2014] [notice] child pid 14786 exit signal Segmentation fault (11)
今天又上新的vps,同樣配置後,以上現象又重現,然後嘗試找出原因。
首先把apache的錯誤日誌調到debug級別,嘗試reload命令後,錯誤依舊,但日誌記錄並未有異常。
然後纔想起查看下系統日誌:
tail -f /var/log/messages
查看到有2條跟php有關的錯誤:
Apr 9 15:57:15 localhost kernel: php[4924]: segfault at 65fd47 ip 0065fd47 sp bfa63660 error 14 in libkrb5.so.3.3[765000+d6000]
Apr 9 16:00:20 localhost kernel: php[4934]: segfault at d8ed47 ip 00d8ed47 sp bfbaa830 error 14 in libpthread-2.12.so[f22000+17000]
然後第一想到了zendGuardLoader這東西,在php.ini裏註釋掉之前加入的zend配置,重啓apache,再行測試,一切又無異常了。
由此看來,可能由於rpm安裝的php本身的一些問題,再加上zendguardLoader,產生了異常,所以導致apache跟着受了影響。
這塊知道的不多,所以只能是這麼說了,瞭解這塊的可以指教一下。