轉自:http://www.softown.cn/post/115.html
Xdebug是PHP開發中兩個常用的斷點調試工具之一(另一個為Zend Debugger)。
現在,我們在Zend Studio中集成PHP的Xdebug模塊,從而在Zend Studio中實現斷點調試功能。
1、下載、安裝、配置Xdebug
關於如何在PHP中安裝、配置Xdebug模塊,請直接參考文章PHP安裝配置Xdebug模塊詳解。
2、Xdebug遠程連接配置
想要在Zend Studio中使用Xdebug,就需要啟用Xdebug的遠程調試功能。
Xdebug與遠程調試相關的參數,見下表。
配置參數選項 | 參數值類型與默認值 | 參數選項描述 |
---|---|---|
xdebug.remote_enable | boolean類型,默認值=0 | 是否啟用Xdebug的遠程調試功能(默認:未啟用) |
xdebug.remote_host | string類型,默認值=localhost | 指定遠程調試的主機地址(可以為域名、主機名或IP地址) |
xdebug.remote_port | integer類型,默認值=9000 | 指定遠程調試的端口號 |
xdebug.remote_handler | string類型,默認值=dbgp | 指定遠程調試的處理協議,值可以為"php3"、"gdb"、"dbgp"。其中,dbgp是唯一受支持的協議。php3可以選擇舊版本PHP 3樣式的調試器輸出;gdb可以像dbgp一樣地使用GDB調試器。Xdebug 2.1及以后版本只支持dbgp協議。 |
xdebug.remote_autostart | boolean類型,默認值=0 | 通常情況下,你需要使用一個指定的HTTP GET/POST 變量來啟動遠程調試。如果該參數設為1,即使沒有指定的變量,Xdebug也將一直嘗試開始一個遠程調試會話,並與客戶端保持連接。 |
xdebug.remote_connect_back | boolean類型,默認值=0 | 該參數自2.2版本開始引入。如果啟用該參數選項,xdebug.remote_host參數將會被忽略。Xdebug將會嘗試和發送請求到PHP服務器的所有客戶端建立連接。Xdebug將通過$_SERVER['REMOTE_ADDR'] 來獲取客戶端所使用的IP地址。只要對方能夠連接到服務器,就可以開啟一個遠程調試會話。 |
xdebug.remote_cookie_expire_time | integer類型,默認值=3600 | 該參數自2.2版本開始引入。指定遠程調試的有效期限(單位:秒)。 |
xdebug.remote_log | string類型,默認值= | 指定遠程調試的日志文件路徑,用於記錄遠程調試的日志信息,該文件在調試過程將會一直以追加模式保持打開,所以默認情況下,文件內容不會被覆蓋。 |
xdebug.remote_mode | string類型,默認值=req | 指定遠程調試的連接模式,值可以為"req"或"jit"。req表示一旦運行腳本就立即連接調試客戶端。jit表示當錯誤發生時才立即連接調試客戶端。 |
簡而言之,如果保持其他參數默認(有些參數官方也不建議修改),我們只需要在php.ini中接着Xdebug原來的配置添加如下一行代碼,即可啟用遠程調試功能。
xdebug.remote_enable=On
最終配置如下圖所示。
3、配置Zend Studio
點擊Zend Studio菜單欄的【Window】->【Preferences】。如下圖所示,在首選項窗口中依次找到【PHP】->【Debug】的右側面板。
在舊版本的Zend Studio中,菜單名直接為【PHP Debug】。
首先我們對PHP Server進行配置,也就是將PHP Server的調試器類型從默認的Zend Debugger改為Xdebug。點擊圖中編號①處的鏈接。
在PHP Server中對當前項目指定的Server進行編輯【Edit】。
筆者的abc.com是本地的虛擬主機配置,以便於直接映射到當前項目的根目錄。
將Debugger類型改為Xdebug。
接着,我們配置PHP執行環境。點擊前面圖中編號②的鏈接,進入PHP的執行環境配置頁面。如下圖所示,Zend Studio為我們自帶了幾個采用Zend Debugger的執行環境,由於我們的PHP是自己獨立安裝的,而不是采用Zend Studio自身集成的。因此,我們將自己安裝的PHP執行環境添加進來。點擊【Add】按鈕。
輸入執行環境的名稱,點擊【Browse】按鈕瀏覽我們自己安裝的php.exe和php.ini的文件路徑,並將PHP Debugger改為Xdebug類型,然后點擊【Finish】。
此時,我們就可以看到PHP Server和PHP Executable的調試器類型都已經改為了Xdebug。面板下方還有一個默認勾選的【Break at First Line】,表示自動在第一行代碼處添加斷點(當然,你也可以取消【Break at First Line】選項,然后在調試之前根據需要添加斷點)。
由於我們的Xdebug遠程調試配置參數均為默認值,而Zend Studio為我們的Xdebug默認設置的參數也與之相同,因此我們不需要在【PHP】->【Debug】->【Installed Debuggers】中對Xdebug的參數進行修改(其默認參數如下圖所示)。
由於我們更改了php.ini配置文件,因此需要重啟服務器使其生效。
接着,如下圖所示,我們就在指定的PHP文件中添加斷點,並進行斷點調試(由於我們剛才勾選了【Break at First Line】選項,因此這里可以不加斷點,當我們進行調試時,Zend Studio會自動在第一行代碼的位置進入斷點調試模式)。
添加好斷點后,我們就在該文件中點擊右鍵,在彈出的關聯菜單中點擊【Debug As】->【PHP Web Application】(有些舊版本為【PHP Web Page】)。
接着在彈出的下列對話框中輸入用於調試的URL。
接着,Zend Studio會提示我們是否進入調試透透視圖,點擊【Yes】。
最后,Zend Studio就自動進入了斷點調試模式,如下圖所示。
這個時候,我們就可以像使用Eclipse的調試快捷鍵來對PHP文件進行調試了。
Eclipse調試快捷鍵:F5(單步跳入)、F6(單步跳過)、F7(單步返回)、F8(跳過調試繼續執行)。