PhpStorm+Xdebug配置單步調試PHP
- 2020 年 2 月 26 日
- 筆記
一、原理:
Xdebug是一款php調試插件,支援在Windows或Linux上進行遠程調試。在php文件運行時,通過TCP協議發送調試資訊到遠程埠,IDE在收到調試資訊時,可以向Xdebug發送單步運行,中止運行,運行等命令。此插件還可以進行程式碼覆蓋率的統計,有興趣的小夥伴可以一起交流。
二、需要的環境:
1. 已搭建好的web伺服器,本例使用的是Apache+PHP;
2. 一款支援Xdebug遠程調試的IDE,本例使用的是PhpStorm7,IDE下載地址:http://www.jetbrains.com/phpstorm/ ;
3. 一款與你的php對應版本的Xdebug。
三、 服務端配置
1. 下載與PHP對應版本的Xdebug:
方法一:
如果你知道所使用的php版本,即可到官網直接下載對應版本的Xdebug,官網地址:http://Xdebug.org/download.php 。
方法二:
a. 如果你不知道你的PHP版本,請echo phpinfo();
b. 按Ctrl+A複製整個頁面;
c. 訪問 http://Xdebug.org/wizard.php ,將複製的內容粘貼到文本框中,如下圖。

d. 點擊頁面下面的「Analyse my phpinfo() output」按鈕,頁面會自動分析你的php版本,如下圖:

e. 點擊Download後面的鏈接,下載與你機器配置的php相匹配的Xdebug版本。
f. 將下載的dll文件保存到PHP文件路徑中的ext文件夾中。
2. 配置php.ini文件,連接Xdebug。
a. 打開PHP文件目錄下的配置文件php.ini
b. 在文件的末尾添加如下設置:
[Xdebug]zend_extension = "E:phpextphp_Xdebug.dll" (值為dll文件的絕對路徑)Xdebug.remote_enable=1Xdebug.remote_host=127.0.0.1Xdebug.remote_port=9000Xdebug.idekey=phpstormXdebug.remote_autostart=1
註:第一行是載入Xdebug.romote_enable是開啟遠程調試,下面是遠程調試的參數,ip、埠、識別字元串、自動遠程調試。
c. 保存文件,重啟apache。
d. 在CMD里輸入 E:phpphp.exe -m 看到[Xend Modules]中出現如下字樣Xdebug,說明開啟成功。如下圖

e. 至此,伺服器端配置完畢。
注意:Xdebug就載入成功後,訪問網站可能會會慢一些,原因是因為你開啟了自動遠程調試,每一次訪問都會連接一下定義的ip和埠。
四、客戶端配置:
1. 打開phpStorm,點擊進入File>Settings>PHP>Servers。
2. 點擊「+」,填寫伺服器端的相關資訊,name填127.0.0.1,host填127.0.0.1,port填80,debugger選Xdebug,如下圖:

3. 點擊進入File>Settings>PHP>Debug。
4. 看到右側Xdebug選項卡,Debug port填9000,其他默認

5. 點擊進入File>Settings>PHP>Debug>DBGp Proxy
6. IDE key 填 phpStorm(與php.ini文件中的Xdebug.idekey值相同),host 填127.0.0.1,port 填80

7. 點OK退出設置。
8. 點擊phpStorm介面右上角像電話一樣的按鈕,打開監聽,如下圖:

9. 如果變為綠色,則為開啟監聽成功,如下圖:

五、開始調試
1. 打開php文件
2. 設置斷點,如下圖:

3. 點擊run>debug,或者按Alt+Shift+F9,如下圖:

4. 在彈出的對話框中選則帶有php圖標的php文件,如下圖:

5. 底部會出現調試資訊,如下圖:

6. 按F8執行Step Over(單步進入函數),按F7執行Step Into(單步跳過函數),更多操作如下圖:

7. 滑鼠移至參數上之後,會出現當前的值,如下圖:

8. 點擊run>stop或者按Ctrl+F2,停止調試。
來源微信公眾號:SogouQA