XDebug 自動開啓PHP Stack Trace, 致使PHP Log 超1G

昨天早上忽然發現測試服務器空間滿了,用du挨個文件夾查看,發現是php debug log佔地極大,有的log直接有1G,打開後發現極其多的php stack trace.php

馬上到主服務器查看,主服務器日誌也400多M的日誌,幸虧主服務器空間足夠。服務器

 

那麼多stack trace,能夠確定以前是沒有的,挨個查看日誌,是某一天早上一個時刻發生的。ide

解決方案:測試

1. 難道是以前升級php致使,到網上搜索php stack trace,全部的都是顯示如何打開,卻沒有如何關閉的。仔細查找php的參數,只找到ignore_repeated_sources和ignore_repeated_error這兩個看似有關的東西,更改後也不頂用。ui

2. 若是不是升級php所致,再仔細想這幾天作了什麼 改動,哪些是和php trace有關的,想起xdebug. ,先嚐試把xdebug刪除,OK,問題消失了。確定是xdebug的問題了,開始的時候沒有直接找xdebug的官方文檔,利用phpinfo把xdebug全部的參數都打出來,先猜是哪一個參數,試了幾個都不頂用, 後來才靜下心來看看xdebug的官方文檔吧,發現了以下話語:this

 Stack Tracesspa

When Xdebug is activated it will show a stack trace whenever PHP decides to show a notice, warning, error etc. The information that stack traces display, and the way how they are presented, can be configured to suit your needs.debug

有戲,再繼續找,發現了一個名稱和用途你如何也聯繫不上的變量"xdebug.default_enable",還真就是這個參數來控制了,以下。日誌

xdebug.default_enable

Type: boolean, Default value: 1code

If this setting is 1, then stacktraces will be shown by default on an error event. You can disable showing stacktraces from your code with xdebug_disable(). As this is one of the basic functions of Xdebug, it is advisable to leave this setting set to 1.
 
這個問題幾乎折騰一天,心得:碰到意外問題時要冷靜,雖然影響了多原有計劃,但若是問題是嚴重的問題就必定要排除萬難先解決了再說,否則會造成習慣。另外,使用一些現成功能模塊時,在在最衩進行搜索無果後,得靜下心來仔細閱讀官方文檔。
相關文章
相關標籤/搜索