2013-03-08 46 views
2

我有有一些bug的代碼e.g爲什麼php無法報告語法錯誤,並且Apache出現分段錯誤?

else{ 
      $stp->Object($a);    
      $abbr = $a->abbr; 
     } 
     asdf 
    } 

我的理解是,PHP應該可以正常顯示錯誤消息e.g說某事是「ASDF」是不是類或常量等一類文件。但是,當我看到這peice的代碼崩潰與分段故障的服務器,因爲我的錯誤日誌文件中說:

[Fri Mar 08 17:21:37 2013] [notice] child pid 8615 exit signal Segmentation fault (11) 

是否有可能配置PHP/Apache來妥善處理這些錯誤? 爲什麼PHP不能報告錯誤一些可以理解的方式。我只在瀏覽器中看到「連接已重置」 消息。

規格: XAMPP(PHP 5.3.1) MAC OS 10.6 Xdebuger安裝

回答

0

顯然事情錯到Apache的,所以它不能正常顯示,因爲Apache的孩子退出。

我有一次類似的錯誤,因爲PHP錯誤重定向到一個PHP錯誤文件(例如:ErrorDocument 500),它包含相同的錯誤,所以它重定向到PHP錯誤頁面等等......製作一個重定向循環。

Apache會自行終止以避免機器故障。


您必須診斷是什麼使Apache死亡。

爲此,請安裝「strace」,例如。在Debian:

apt-get install strace 

然後停止你的Apache,並通過strace的啓動:

strace -f /usr/sbin/apache2ctl 

重現您的問題,直到您的Apache子崩潰,並嘗試尋找到了strace的日誌以找出發生了什麼。

希望這有助於。

+0

讓我檢查這個 – sakhunzai 2013-03-14 16:16:09

+0

這似乎是使用php auto_loader東西時的問題 – sakhunzai 2013-08-31 05:45:48

相關問題