爲了便於查找問題, 首先建議開發者打開php錯誤日志, 以便通過php錯誤日志來排錯。
LNMP下的錯誤需要編輯以下這個文档----假設你的php被安裝到了/usr/local/php 那麽配置文档就應該在以下位置:
/usr/local/php/etc/php-fpm.conf
加上
php_admin_value[error_log] = /usr/local/php/var/log/php_errors.log php_admin_flag[log_errors] = on
或在/usr/local/php/etc/php-fpm.conf裡設置,加上catch_workers_output = yes,錯誤信息就會記錄到php-fpm.conf裡error_log設置的文档裡。
上述兩種方法都行,重啓php-fpm生效
同理php.ini裡的display_errors也是需要在php-fpm.conf裡設置的,加上php_flag[display_errors] = On就開啓了。
有時因爲權限等問題, 可能錯誤日志文档不會自動創建,可以執行
touch /usr/local/php/var/log/php_errors.log && chown www:www /usr/local/php/var/log/php_errors.log
這個命令就可以了。
還有的同學喜歡在php.ini裡面配置, 那麽就要在php.ini裡面查找error關鍵字, 一個一個地根據需要改, 重點就是以下兩項:
log_errors=On # 打開日志記錄 error_log=絕對路徑地址
本文只細講在php-fpm.conf裡的改法, 就不再贅述php.ini的改法。
如果還是捕獲不到錯誤怎麽辦?
那就要查看項目代碼頭部當中是否有配置到ini_set和error_reporting()這兩個函數是否把錯誤報告給關了或者引導到別處去了。
開啓PHP錯誤日志的其他方式
LAMP和LNMPA下開啓錯誤日志的方法是:編輯
/usr/local/php/etc/php.ini
查找
;error_log
加上
error_log=/var/log/php_errors.log
然後重啓apache生效。
出了問題你就在用vim或者cat命令在/var/log/php_errors.log裡面找
有時候上面設置可能無法記錄下日志,可以嘗試把錯誤日志設置一下, 在php.ini裡
error_log = syslog
這樣就會輸出到系統日志裡,一般是 /var/log/messages 日志文档中會記錄php報錯的相關信息。