PHP-XDebug配置
0x01 XDebug介紹php
- XDebug是一個開放源代碼的PHP程序調試器,能夠用來跟蹤,調試和分析PHP的運行情況,功能強大,對審計有很大的幫助
- XDebug實際上是一個.dll文件,一般放在PHP安裝目錄的ext/php_xdebug.dll。經過配置對應版本的php.ini文件使用
- 當配置XDebug完成後,每次訪問一個頁面,都會在指定的目錄下生成一個文檔,文檔詳細的記錄了相關變量和函數的運行時間、源文件等等,可經過此文檔,得知PHP的運行情況、某個函數的效率高低等等
0x02 安裝配置Debughtml
- 安裝
- 若是在PHP的安裝目錄下沒有php_xdebug.dll文件,需到官網下載與本身本機PHP版本對應的XDebug,下載完成以後,放在對應版本/ext/下
- 配置(修改配置文件後需重啓Apache服務纔可生效)
- 修改對應的PHP版本配置(.ini)文件,配置以下
![](http://static.javashuo.com/static/loading.gif)
- 參數解讀
- 1937:將分析器輸出寫入到的目錄中,請確保將運行PHP的用戶對該目錄具備寫權限
- 1938:當這個設置被設置爲!= 0時,Xdebug在錯誤狀況下生成的堆棧轉儲也會顯示最頂層範圍內的全部變量。注意,這可能會生成大量信息,所以在默認狀況下關閉
- 1939:日誌的輸出文件夾,請確保將運行PHP的用戶對該目錄具備寫權限
- 1940:XDebug的文件位置
- 1941:在概要文件輸出目錄中建立文件
- 1942:當這個設置設置爲1時,您能夠經過使用XDEBUG_PROFILE GET/POST參數來觸發概要文件的生成,或者設置一個名爲XDEBUG_PROFILE的cookie。這將把分析器數據寫入定義的目錄。爲了防止分析器爲每一個請求生成概要文件,您須要設置xdebug。profiler_enable爲0
- 1943:打開自動追蹤。自動追蹤通常狀況下爲打開,能夠更方便的尋找函數
- 1944:當這個設置被設置爲1時,Xdebug將在任何異常或錯誤被引起時顯示一個堆棧跟蹤,即便這個異常或錯誤被實際捕獲
- 1945:當這個設置被設置爲1時,Xdebug將老是嘗試啓動一個遠程調試會話並嘗試鏈接到一個客戶端
- 1946:這個開關控制Xdebug是否應該嘗試聯繫一個調試客戶端,這個客戶端在主機上監聽Xdebug設置的端口。若是沒法創建鏈接,腳本將繼續,就像該設置爲0同樣
- 1947:只能是「dbgp」來表示調試器協議。DBGp協議是惟一受支持的協議
- 1948:遠程調試客戶機的主機IP,這裏固定填寫127.0.0.1
- 1949:遠程主機上Xdebug試圖鏈接到的端口
- 1950:鏈接IDE的Key,可自定義
- 其餘參數 xdebug.trace_format=0:日誌追蹤輸出目錄,0表明人可讀,1表明機器可讀,2表明html格式,用瀏覽器打開閱讀。通常使用0
- xdebug.trace_options=0:記錄添加到文件中方式,0表明覆蓋,1表明追加,通常選擇覆蓋,由於隨着時間,文件愈來愈大,不方便審計
- xdebug.collect_params=4:顯示內容詳細程度,這裏選擇4,顯示全部變量內容和變量名
- xdebug.collect_return=1:顯示函數返回值,0爲不顯示
- xdebug.collect_vars=1:顯示當前做用於使用了哪些變量,顯示變量名
- xdebug.collect_assignments=1:添加一行顯示變量賦值
0x03 XDebug的解密功能瀏覽器
- XDbug還有一個很強大的功能,它能夠自動跟隨函數和變量的‘腳步’,解密出加密過的內容
- 經過網頁訪問加密過的文件,使XDebug生成日誌記錄文件,從而間接達到解密的目的
- 使用記事本打開日誌記錄文件便可獲取解密後的內容
歡迎關注本站公眾號,獲取更多信息