PHP FPM 輸出PHP錯誤日誌

2021-10-10 05:59:07 字數 1454 閱讀 1068

nginx是乙個web伺服器,因此nginx的access日誌只有對訪問頁面的記錄,不會有php 的 error log資訊。

nginx把對php的請求發給php-fpm fastcgi程序來處理,預設的php-fpm只會輸出php-fpm的錯誤資訊,在php-fpm的errors log裡也看不到php的errorlog

原因是php-fpm的配置檔案php-fpm.conf中預設是關閉worker程序的錯誤輸出,直接把他們重定向到/dev/null,所以我們在nginx的error log 和php-fpm的errorlog都看不到php的錯誤日誌。

除錯起來就很痛苦了。解決nginx下php-fpm不記錄php錯誤日誌的辦法:

1.修改php-fpm.conf中配置 沒有則增加

catch_workers_output = yes

error_log = log/error_log

2.修改php.ini中配置,沒有則增加

log_errors = on

error_log = 「/usr/local/lnmp/php/var/log/error_log」

error_reporting=e_all&~e_notice

3.重啟php-fpm

當php執行錯誤時就能看到錯誤日誌在"/usr/local/lnmp/php/var/log/error_log"中了

請注意:

php-fpm.conf 中的php_admin_value[error_log] 引數 會覆蓋php.ini中的 error_log 引數

所以確保你在phpinfo()中看到的最終error_log檔案具有可寫許可權並且沒有設定php_admin_value[error_log] 引數,否則錯誤日誌會輸出到php-fpm的錯誤日誌裡。

找不到php.ini位置,使用php的phpinfo()結果檢視

3.如何修改php錯誤日誌不輸出到頁面或螢幕上

修改php.ini

display_errors = off //不顯示錯誤資訊(不輸出到頁面或螢幕上)

log_errors = on //記錄錯誤資訊(儲存到日誌檔案中)

error_reporting = e_all //捕獲所有錯誤資訊

error_log = //設定日誌檔名

程式中修改以上配置

ini_set(「display_errors」,0)

ini_set(「error_reporting」,e_all); //這個值好像是個php的常量

ini_set(「error_log」,"《日誌檔名》")

ini_set(「log_errors」,1);

nginx php fpm 輸出php錯誤日誌

nginx是乙個web伺服器,因此nginx的access日誌只有對訪問頁面的記錄,不會有php 的 error log資訊。nginx把對php的請求發給php fpm fastcgi程序來處理,預設的php fpm只會輸出php fpm的錯誤資訊,在php fpm的errors log裡也看不到...

nginx php fpm 輸出php錯誤日誌

nginx是乙個web伺服器,因此nginx的access日誌只有對訪問頁面的記錄,不會有php 的 error log資訊。nginx把對php的請求發給php fpm fastcgi程序來處理,預設的php fpm只會輸出php fpm的錯誤資訊,在php fpm的errors log裡也看不到...

php fpm開啟錯誤日誌的配置

nginx與apache不一樣,在apache中可以直接指定php的錯誤日誌,那樣在php執行中的錯誤資訊就直接輸入到php的錯誤日誌中,可以方便查詢。在nginx中事情就變成了這樣 nginx只對頁面的訪問做access記錄日誌。不會有php的error log 資訊。nginx把對php的請求發...