源碼 ASP源碼 PHP源碼 NET源碼 JAVA源碼 FLASH源碼 其它源碼 整站源碼 常見問題

開啟php錯誤日志

PHP源碼 技術02-千編萬碼 1月前  次瀏覽

nginx與apache不一樣,在apache中可以直接指定php的錯誤日志,那樣在php執行中的錯誤信息就直接輸入到php的錯誤日志中,可以方便查詢。

在nginx中事情就變成了這樣: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 文件,添加(或修改)如下配置:

  [global]
  error_log = log/error_log

  [www]
  catch_workers_output = yes


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

經查log_errors= On,據官方的說法,當這個log_errors設置為On,那么必須指定error_log文件,如果沒指定或者指定的文件沒有權限寫入,那么照樣會輸出到正常的輸出渠道,那么也就使得display_errors 這個指定的Off失效,錯誤信息還是打印了出來。于是將log_errors = Off,問題就解決了。

相關鏈接

版權所有

發表評論

2017怎样手机上赚钱