一、為什麼需要Debugger?
很多PHP程式員調試使用echo、print_r()、var_dump()、printf()等,其實對 於有較豐富開發經驗的程式員來說這些也已經足夠了,他們往往可以在程式執行的過程中,通過輸出特定變數的值可以判斷程式執行是否正確,甚至效率高低也可以 看出來(當然可能還需要使用一些時間函數)。那麼我們為什麼還需要一個專門的偵錯工具來監控我們的程式運行呢? 這個問題的答案不妨留到後面來揭曉。
二、什麼是Xdebug?
Xdebug是一個開放原始碼的PHP程式調試器(即一個Debug工具),可以用來跟蹤,調試和分析PHP程式的健全狀態。
三、Windows 下 XDebug 安裝與配置
1. 下載XDebug二進位檔案: http://www.xdebug.org/download.php
請根據php版本選擇下載,例如:
複製代碼 代碼如下:
5.2 http://www.xdebug.org/files/php_xdebug-2.1.2-5.2-vc6.dll
5.3 http://www.xdebug.org/files/php_xdebug-2.1.2-5.3-vc6.dll
2. 找到並開啟 php.ini 檔案
3. 如果配置過 ZendOptimizer, 需要先屏蔽 ZendOptimizer 有關的配置, 通常如下:
複製代碼 代碼如下:
[Zend]
zend_extension_manager.optimizer_ts=”path\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0″
zend_extension_ts=”path\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll”
將其刪除或用分號注釋掉,如改為:
複製代碼 代碼如下:
;[Zend]
;zend_extension_manager.optimizer_ts=”path\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0″
;zend_extension_ts=”path\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll”
4. 加入 XDebug 配置。參考如下:
複製代碼 代碼如下:
[Xdebug]
zend_extension_ts=”path/xdebug/php_xdebug-2.1.2-5.2-vc6.dll”
xdebug.auto_trace=on
xdebug.trace_output_dir=”path\xdebug”
xdebug.profiler_enable=on
xdebug.profiler_output_dir=”path\xdebug”
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
說明:
上面 “path” 的地方需要修改為你自己的本地路徑.
參數解釋:
複製代碼 代碼如下:
zend_extension_ts=”c:/webserver/php5/ext/php_xdebug.dll”
;載入xdebug模組。這裡不能用extension=php_xdebug.dll的方式載入,必須要以zend的方式載入,否則安裝上後,phpinfo是顯示不出xdebug這個項的。
xdebug.auto_trace=on;
;自動開啟“監測函數調用過程”的功模。該功能可以在你指定的目錄中將函數調用的監測資訊以檔案的形式輸出。此配置項的預設值為off。
xdebug.collect_params=on;
;開啟收集“函數參數”的功能。將函數調用的參數值列入函數程序呼叫的監測資訊中。此配置項的預設值為off。
xdebug.collect_return=on
;開啟收集“函數傳回值”的功能。將函數的傳回值列入函數程序呼叫的監測資訊中。此配置項的預設值為off。
xdebug.trace_output_dir=
;設定函數調用監測資訊的輸出檔案的路徑。
xdebug.profiler_enable=on
;開啟效能監測器。
xdebug.profiler_output_dir=
;設定效能監測資訊輸出檔案的路徑。
還有一些更為具體的參數設定,詳見:http://www.xdebug.org/docs-settings.php
5. 重啟web伺服器,如 Apache 或者 IIS
6. 查看 phpinfo 的輸出, 如果看到 XDebug 的選項, 就說明配置成功了.
7. 調試資訊檔查看。
在本地運行php程式,會在所設定的目錄裡產生一些調試資訊的檔案,主要包括:
a. 函數調用過程監測資訊檔,檔案名稱格式:trace.××××××.xt。該檔案可直接查看,裡麵包含了函數啟動並執行時間,函數調用的參數值,傳回值,所在的檔案和位置等資訊。內容格式相對直觀。
b. 效能監測檔案,檔案名稱格式:cachegrind.out.××××××××。
該檔案也可以直接查看,但資訊格式不易被人類所理解,我們可以安裝 wincachegrind 軟體,以格式化地讀取它。 下載安裝方法參考如下:
下載:http://sourceforge.net/projects/wincachegrind/
下載後安裝運行,然後點擊Tools->options,設定 working folder(php.ini裡 xdebug.profiler_output_dir 的值)
這樣就可以比較直觀的查看效能監測檔案的資訊了。
四、linux下 XDebug 安裝與配置
linux 下可以下載原始碼編譯安裝,方法參考如下。
1.下載對應 php 版本的原始碼 source: http://www.xdebug.org/download.php
例如xdebug-2.1.2.tgz版本:http://www.xdebug.org/files/xdebug-2.1.2.tgz
2. 編譯安裝
複製代碼 代碼如下:
tar -xvzf xdebug-2.1.2.tgz
cd xdebug-2.1.2
./configure
make
make install
如果有報錯 phpize 沒有這個command,那麼安裝它:
複製代碼 代碼如下:
sudo apt-get install php5-dev
3. 將xdebug.so檔案移到php5下面
複製代碼 代碼如下:
cp modules/xdebug.so /usr/lib/php5/
4. 編輯php.ini,加入下面幾行:
複製代碼 代碼如下:
[Xdebug]
zend_extension= /usr/lib/php5/xdebug.so
xdebug.profiler_enable=on
xdebug.trace_output_dir=”../xdebug”
xdebug.profiler_output_dir=”../xdebug”
5. 重啟Apache,測試是否安裝成功
如果輸出的內容中有看到xdebug,說明安裝配置成功。