Xdebug+phpStorm安裝與調(diào)試保姆級(jí)教程!『通俗易懂』

極客小俊
一個(gè)把邏輯思維轉(zhuǎn)變?yōu)榇a的技術(shù)博主


1.什么是Xdebug?
Xdebug
是一個(gè) 的PHP程序調(diào)試器,其實(shí)就是一個(gè)Debug工具
而已 可以用來(lái)跟蹤,調(diào)試、分析
PHP程序當(dāng)前的運(yùn)行狀況!
2.為什么要使用Xdebug?
可能在項(xiàng)目開(kāi)發(fā)當(dāng)中 當(dāng)你的業(yè)務(wù)代碼復(fù)雜到一層又套一層的嵌套的時(shí)候, 或者說(shuō)print_r
、 log
、 var_dump
這些打印方法也滿足不了你的時(shí)候,并且你也沒(méi)有在phpStorm
中配置過(guò)Xdebug
那么我建議可以嘗試一下Xdebug
來(lái)調(diào)試代碼!
3.在window中如何下載與安裝Xdebug 2.7.2
1.下載
Xdebug 2.7.2
提示:
在下載xdebug
時(shí),會(huì)有兩種版本, 一種是帶有TS
, 另外一種則不帶有TS
,帶"ts"是線程安全的意思
, 主要還是看php
版本是否支持線程安全
版本!
所以我們這里要先知道目前你安裝的php
版本是多少! 我的版本是php7.3.16帶ts
如何檢測(cè)當(dāng)前php版本
在ide
編輯器中新建一個(gè)test.php
然后輸入以下代碼:
?echo phpinfo();
運(yùn)行之后如圖:

官方下載Xdebug 2.7.2
知道了當(dāng)前php版本
等信息之后我們就可以去下載xdebug
了
打開(kāi)官方地址:https://xdebug.org/
, 點(diǎn)擊Install
菜單選項(xiàng)

然后找到下面的Installing on Windows
點(diǎn)擊選擇download

然后進(jìn)行下載選擇頁(yè)面, 在下載
頁(yè)面中選擇最下面的historical releases(歷史版本)
如圖:

進(jìn)入historical releases(歷史版本)
頁(yè)面 這里我選擇是Xdebug 2.7.2版本
發(fā)布日期是2019-05-06
的

?提示: 這里暫時(shí)不推薦使用Xdebug3.x版本原因如下:
?1. 3.0跟2.0的配置參數(shù)寫(xiě)法有些不一樣,并且并徹底修改了設(shè)置參數(shù)
?2. 如果你phpStorm版本比較低,那么 PhpStorm的檢查腳本可能還沒(méi)有完全更新 使用Xdebug3.x版本集成還有一定的兼容性問(wèn)題
自動(dòng)分析你系統(tǒng)對(duì)應(yīng)的xdebug版本
當(dāng)然如果你確實(shí)不知道當(dāng)前php
的版本,又懶得去找那么就試試這個(gè)地址:https://xdebug.org/wizard
,這個(gè)是xdebug
官方網(wǎng)站給用戶提供的一個(gè)自動(dòng)分析當(dāng)前電腦系統(tǒng)對(duì)應(yīng)的xdebug
版本的頁(yè)面! 打開(kāi)它你將看到以下頁(yè)面!

在這個(gè)頁(yè)面中需要把你在ide
中輸入phpinfo()函數(shù)
打印出的php版本信息使用ctrl+A
全選粘貼到頁(yè)面中的多行文本框
中后,再點(diǎn)擊Analyse my phpinfo() output
提交你的php信息
它會(huì)幫你分析出最適合你的xdebug
版本!
如圖

這個(gè)功能很貼心的能夠幫助你生成你要找的xdebug
版本,

多說(shuō)一句,雖然這里能夠幫助你分析出合適的
xdebug
版本, 但檢測(cè)出來(lái)的版本也不一定就是匹配正確的! 如果出現(xiàn)問(wèn)題就多換幾個(gè)低版本的試試!
那么我這里就下載的是php_xdebug-2.7.2-7.3-vc15-x86_64
?下載完畢之后如下圖:

2.安裝
Xdebug2.7.2
將下載的
php_xdebug-2.7.2-7.3-vc15-x86_64.dll
文件移動(dòng)到X:\php7.3.16\ext
目錄下當(dāng)然如果你是
一鍵php環(huán)境
例如wamp、xampp
等也就在他們的目錄下找到對(duì)應(yīng)php版本
文件夾下的ext
目錄就可以了!

找到
php.ini
文件編輯X:\php7.3.16\php.ini

? 打開(kāi)php.ini文件
并在里面添加如下代碼:
?[xdebug]
?;加載xdebug庫(kù)文件
?zend_extension = "X:\php7.3.16\ext\php_xdebug-2.7.2-7.3-vc15-x86_64.dll"
注意:
1. 這里的 X 指的是你自己的硬盤(pán)目錄
2. 代碼可以直接加在php.ini文件的最后
3.php.ini文件中增加的代碼行等號(hào)前后有空格,值可以有雙引號(hào),當(dāng)然也可以沒(méi)有引號(hào),但我個(gè)人建議加上

一定要重新啟動(dòng)
apache
網(wǎng)絡(luò)服務(wù)器
到這里xdebug
的下載
和安裝啟用
就完成了,重新在php代碼中打印 phpinfo()函數(shù)
在打開(kāi)的信息頁(yè)面中如果有出現(xiàn)下圖效果才能說(shuō)明安裝正確!

4.Xdebug2.x 常見(jiàn)配置參數(shù)
我們安裝啟動(dòng)好了xdebug
之后 還需要對(duì)它進(jìn)行一些參數(shù)上的配置,?
我自己常用的配置參數(shù)如下表:
xdebug.auto_trace
On/Off
?開(kāi)啟/關(guān)閉On
是否開(kāi)啟 自動(dòng)跟蹤
xdebug.show_exception_trace
On/Off
?開(kāi)啟/關(guān)閉On
是否開(kāi)啟 異常跟蹤
xdebug.remote_autostart
On/Off
?開(kāi)啟/關(guān)閉On
是否開(kāi)啟 遠(yuǎn)程調(diào)試自動(dòng)啟動(dòng)
xdebug.remote_enable
On/Off
?開(kāi)啟/關(guān)閉On
是否開(kāi)啟 遠(yuǎn)程調(diào)試
xdebug.remote_host
ip地址 或 localhost
localhost
允許調(diào)試的客戶IP
xdebug.remote_port
(默認(rèn)9000)
9001
遠(yuǎn)程調(diào)試的端口,如果默認(rèn)端口被占用則可以可以改成其他端口!
xdebug.remote_handler
dbgp
dbgp
用于zend studio遠(yuǎn)程調(diào)試的應(yīng)用層通信協(xié)議xdebug.collect_vars
On/Off
?開(kāi)啟/關(guān)閉On
是否收集變量
xdebug.collect_return
On/Off
?開(kāi)啟/關(guān)閉On
是否收集返回值xdebug.collect_params
On/Off
?開(kāi)啟/關(guān)閉On
是否收集參數(shù)
xdebug.trace_output_dir
絕對(duì)路徑
x:\目錄
跟蹤調(diào)試數(shù)據(jù)輸出路徑xdebug.profiler_enable
On/Off
?開(kāi)啟/關(guān)閉On
是否開(kāi)啟調(diào)試內(nèi)容
xdebug.profiler_output_dir
絕對(duì)路徑
x:\目錄
調(diào)試結(jié)果輸出路徑
xdebug.max_nesting_level
數(shù)值
10000
函數(shù)遞歸調(diào)用自身次數(shù), 設(shè)太小時(shí)會(huì)報(bào)超過(guò)最大嵌套數(shù)錯(cuò)
php.ini中我的配置如下
?[xdebug]
?;加載xdebug庫(kù)文件
?zend_extension = "E:\php7.3.16\ext\php_xdebug-2.7.2-7.3-vc15-x86_64.dll"
?
?xdebug.auto_trace="On"
?xdebug.show_exception_trace="On"
?xdebug.remote_autostart="On"
?;開(kāi)啟遠(yuǎn)程調(diào)試
?xdebug.remote_enable = "1"
?;客戶機(jī)ip
?xdebug.remote_host = "localhost"
?;客戶機(jī)xdebug監(jiān)聽(tīng)端口和調(diào)試協(xié)議
?xdebug.remote_port = "9001"
?;用于zend studio遠(yuǎn)程調(diào)試的應(yīng)用層通信協(xié)議
?xdebug.remote_handler = "dbgp"
?xdebug.collect_vars="On"
?;是否開(kāi)啟調(diào)試內(nèi)容
?xdebug.profiler_enable = "On"
?xdebug.trace_output_dir="E:\xdebug_tmp\debug.log"
?xdebug.profiler_output_dir="E:\xdebug_tmp\debug.log"
5.如何在本地phpStorm中配置xdebug2.x
1.配置
端口(port)
號(hào)
啟動(dòng)phpStorm
隨后在打開(kāi)File--->Settings--->Languages & Frameworks(語(yǔ)言與框架中)--->PHP---->Debug
在顯示的面板中設(shè)置端口,端口默認(rèn)為9000,我們?cè)?code>php.ini中配置的多少這里就設(shè)置是多少!
如圖

2.設(shè)置
DBGp Proxy
打開(kāi)File--->Settings--->Languages & Frameworks(語(yǔ)言與框架中)--->PHP---->Debug---->DBGp Proxy
在DBGp Proxy
中配置如下:
idekey
就是在php.ini
配置文件中設(shè)置的名字 ?(配置文件中沒(méi)有 也沒(méi)關(guān)系!)
host
是你的服務(wù)器ip或者是已經(jīng)可以解析的域名,或者本地就直接寫(xiě)localhost
或 127.0.0.1
也行
port
可以自選,一般默認(rèn)選80
就好了
如圖

3.手動(dòng)添加一個(gè)
Servers
打開(kāi)File--->Settings--->Languages & Frameworks(語(yǔ)言與框架中)--->PHP---->Servers
在出現(xiàn)的對(duì)話框中 填寫(xiě)如下信息:
name
填寫(xiě)一個(gè)名稱 隨意都可以!
Host
填寫(xiě)配置當(dāng)前服務(wù)器ip或localhost
port
是默認(rèn)80端口,也可以根據(jù)你的配置填寫(xiě) 你更改的web端口號(hào)
debug
選 xdebug

4.測(cè)試
xdebug2.x
的配置是否成功!
再次打開(kāi)File--->Settings--->Languages & Frameworks(語(yǔ)言與框架中)--->PHP---->Debug
接著點(diǎn)擊右邊的Validate(驗(yàn)證)
按鈕 如下圖:

會(huì)彈出Validate Debugger Configuration on Web Server(驗(yàn)證Web服務(wù)器調(diào)試器配置)
對(duì)話框
創(chuàng)建一個(gè)調(diào)試服務(wù)
,用于與真正服務(wù)器同步
Path to create Validation script:
是填寫(xiě) 創(chuàng)建驗(yàn)證腳本的路徑,也就是你的服務(wù)站點(diǎn)路徑地址
Url to validation script:
驗(yàn)證腳本的Url地址 也就是你的解析好的域名網(wǎng)絡(luò)地址目錄
如下圖:

到此我們?cè)?code>phpSrorm中配置Xdebug2.x
就完成了!
6.測(cè)試一下在本地使用Xdebug2.x來(lái)調(diào)試php代碼
在index.php
輸入以下代碼
?for($i=0;$i<5;$i++){
? ? ?echo $i;
?}
?
?echo "hello world";
?echo phpinfo();
然后選擇Run菜單選項(xiàng)----->Debug
, 在彈出對(duì)話框中選擇index.php(PHP Script)

在phpStorm IDE
右上角再中打開(kāi)debug
監(jiān)聽(tīng)按鈕, 如下圖

現(xiàn)在就可以開(kāi)始斷點(diǎn)調(diào)試了! 比如先在要斷點(diǎn)的代碼處打斷點(diǎn)標(biāo)記

然后按下鍵盤(pán)上的shift+F9
或 直接點(diǎn)phpStorm IDE
右上角的小蟲(chóng)
圖標(biāo)

就可以斷點(diǎn)調(diào)試
了, 按下快捷鍵F9
或者點(diǎn)擊Resume Program(恢復(fù)按鈕)
進(jìn)行基礎(chǔ)斷點(diǎn)調(diào)試

關(guān)于xdebug
的詳細(xì)使用我會(huì)在之后繼續(xù)更新!