php apache錯誤日誌的開啟方法:先修改php-fpm.conf中的設定;然後修改php.ini中配置為「log_errors = On」;最後重啟php-fpm即可。
推薦:《PHP影片教學》
nginx與apache開啟php錯誤日誌記錄
最近在本地搭建的LNMP的開發環境。為了開發的時候不影響前端的正常開發就屏蔽的PHP裡面php.ini中的一些錯誤提示。但是這樣一來,就影響到了後端開發的一些問題比如不能及時調試開發中的一些問題
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] ; Note: the default prefix is /usr/local/php/var error_log = log/php_error_log [www] catch_workers_output = yes
2.修改php.ini中配置,沒有則增加:
log_errors = On error_log = "/usr/local/php/var/log/error_log" error_reporting=E_ALL&~E_NOTICE
3.重啟php-fpm
當PHP執行錯誤時就能看到錯誤日誌在”/usr/local/lnmp/php/var/log/php_error_log”中了
#如果出現:
[root@localhost etc]# service php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm [17-Apr-2014 18:40:52] ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry 'catch_workers_ [17-Apr-2014 18:40:52] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf' [17-Apr-2014 18:40:52] ERROR: FPM initialization failed failed
#那請在第一步的時候,認真將配置寫入相對應的群組中,不然就出現上面的:
ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry ‘catch_workers_output' apache display_errors
錯誤回顯,一般常用語開發模式,但是很多應用在正式環境中也忘記了關閉此選項。錯誤回顯可以暴露出非常多的敏感訊息,為攻擊者下一步攻擊提供便利。建議關閉此選項。
display_errors = On
開啟狀態下,若出現錯誤,則報錯,出現錯誤提示
dispaly_errors = Off
關閉狀態下,若出現錯誤,則提示:伺服器錯誤。但是不會出現錯誤提示
log_errors
在正式環境下用這個就行了,把錯誤訊息記錄在日誌裡。正好可以關閉錯誤回顯。
對於PHP開發人員來說,一旦某個產品投入使用,那麼第一件事就是應該將display_errors選項關閉,以免因為這些錯誤所透露的路徑、資料庫連接、資料表等資訊而遭到黑客攻擊。
某個產品投入使用後,難免會有錯誤訊息,那麼如何記錄這些對開發人員非常有用的資訊呢?
將PHP的log_errors開啟即可,預設是記錄到WEB伺服器的日誌檔案裡,例如Apache的error.log檔案。
當然也可以記錄錯誤日誌到指定的檔案。
以上是php apache 錯誤日誌如何開啟的詳細內容。更多資訊請關注PHP中文網其他相關文章!