前言:
對于我們做php開發的人員,上了生産環境,一定要把相關debug,display_errors錯誤提示等關掉。誰還難免不犯個錯呢?這樣能防止非緻命性報錯下,導緻項目路徑、資料庫等資訊洩漏。
問:那麼問題來了,我們在生産該如何檢視php等相關錯誤呢?
答: 記錄到錯誤日志裡。error.log (或直接發送到syslog)
下邊就如何配置和檢視日志作出簡單叙述。
一.相關配置
需要将php.ini中的配置指令做如下修改:
1. error_reporting = E_ALL ;将會向PHP報告發生的每個錯誤
2. display_errors = Off ;不顯示滿足上條 指令所定義規則的所有錯誤報告
3. log_errors = On ;開啟錯誤日志
4. log_errors_max_len = 1024 ;設定每個日志項的最大長度
5. error_log = /var/php_errors.log ;指定産生的 錯誤報告寫入的日志檔案位置
PHP的配置檔案按上面的方式設定完成以後,并重新啟動Web伺服器。這樣,在執行PHP的任何腳本檔案時,所産生的所有錯誤報告都不會在浏覽器中顯示,而會記錄在自己指定的錯誤日志/usr/local/error.log中。此外,不僅可以記錄滿足error_reporting所定義規則的所有錯誤,
而且還可以使用PHP中的error_log()函數,送出一個使用者自定義的錯誤資訊 。
二.檢視存放位址
1.通過php.ini來檢視錯誤日志存放位址
echo '<?php phpinfo(); ?>' | php 2>&1 |grep -i error_log
或者在一個php檔案中輸出 phpinfo();檢視錯誤日志存放位置
2.檢視日志存放位置
vi /etc/php.ini
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZD9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVPZdUYmxGSkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DN5ADOxIzMwEzNxIDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
3.檢視日志:
tail -f -50 /var/php_errors.log
除了一般的錯誤輸出之外,PHP還允許向系統syslog中發送定制的消息。雖然通過前面介紹的error_log()函數,也可以向syslog中發送定制的消息,但在PHP中為這個特性提供了需要一起使用的4個專用函數。這裡就不介紹了。
參考位址:
PHP錯誤日志: http://blog.csdn.net/breeze_life/article/details/9368575
系統日志:記錄系統相關資訊: http://blog.csdn.net/ty_hf/article/details/55511624
apache通路日志與錯誤日志: http://blog.csdn.net/ty_hf/article/details/55504719
nginx通路日志與錯誤日志: http://blog.csdn.net/ty_hf/article/details/55518070
php-fpm慢日志 :檢測執行較慢的PHP腳本: http://blog.csdn.net/ty_hf/article/details/55504172
php錯誤日志:檢測php運作時或使用者自記錄錯誤日志: http://blog.csdn.net/ty_hf/article/details/55505262
mysql慢日志:記錄mysql伺服器中影響性能的SQL: http://blog.csdn.net/ty_hf/article/details/55504172
本文位址:http://blog.csdn.net/ty_hf/article/details/ 55505262