轉載請注明出處-https://www.cnblogs.com/TS-Alex/p/11302605.html
1、安裝環境
php:7.2.21
xdebug版本:2.7.2
phpstorm版本:2019.2
nginx版本:1.12.2
2、安裝過程
1、xdebug擴展的下載
先通過phpinfo()函數查看當前php版本 主要關注的信息如下
確定php的編譯環境,運行系統以及是否是線程安全的 我的環境為
MSVC15 (Visual C++ 2017)x64 非線程安全
查詢要如上信息之后到官網中下載xdebug擴展
我是在windows系統上搭建的web服務所以我下載的是windows版的動態鏈接庫dll
下載地址為 https://xdebug.org/download.php
xdebug 分很多版本 有2.8的alpha版和2.8的betab版本 這里我下載的是2.7.2的穩定版 下載哪一個根據開始查到的phpinfo信息進行選擇,我的php是VC15 X64 非線程安全的版本那么就下載下圖所示的這個版本
2、xdebug擴展的安裝
1、下載后的文件是一個dll文件,將這個文件重命名為php_xdebug.dll
2、將文件放在php的擴展文件夾里面 文件夾路徑是php主目錄-》ext文件夾
3、文件夾放置好后就是給php添加這個擴展,
打開php.ini文件 在擴展編輯的地方增加如下代碼
[Xdebug]
zend_extension=E:\LocalServer\php-7.2.21-nts-Win32-VC15-x64\ext\php_xdebug.dll ;加載擴展的位置
xdebug.profiler_output_dir="E:\php-7.2.21-nts-Win32-VC15-x64\xdebug"
xdebug.trace_output_dir="E:\LocalServer\php-7.2.21-nts-Win32-VC15-x64\tmp\xdebug"
xdebug.remote_log="E:\LocalServer\php-7.2.21-nts-Win32-VC15-x64\xdebug\log\xdebug.log" ;日志記錄位置
xdebug.remote_port=9001 ;xdebug監聽端口
xdebug.collect_params=on
xdebug.collect_return=0
xdebug.remote_enable=1 ;開啟遠程調試
xdebug.auto_trace=on
xdebug.profiler_enable = Off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.remote_autostart=Off
xdebug.remote_handler = "dbgp" ;傳輸協議
xdebug.remote_host=127.0.0.1
xdebug.idekey = "PHPSTORM" ;IDE關鍵字
配置好后重啟 php_cgi服務重新加載phppe配置文件
重新輸出phpinfo信息如果看到如下信息既表名xdebug擴展添加成功
3、phpstorm的配置
添加成功后打開phpstorm 配置idea
注意這里有一個大坑 如果你的phpstorm版本是比較老的版本但是你的php 和xdebug的版本較新可能會導致調試卡死,是由於xdebug的xml命名空間變更的緣故,這里建議安裝最新版本的phpstorm軟件-我安裝的是2019.2 (我以前用的phpstorm以前是10.0.2只能調試php5.x版本的代碼 php版本換成7.x怎么都不能斷點逐步調試,每次代碼只能段在入口文件的第一行就卡死了最后web服務器返回504)
3.1、Setting配置
File->Setting->Languages & Frameworks
PHP
Debug
DBGp proxy
Servers-這個配置的server是我們運行調試時選擇的server
3.2運行配置
點擊菜單欄的 RUN->Web Server Debug Validation
進行如下如所示配置
當setting配置好后並且已經正確開啟了nginx 和 php_cgi 服務后點擊Validate 按鈕會顯示調試環境是否配置成功全部顯示√既表示配置成功
4、進行斷點調試
要調試就需要發送請求
這里我發送請求的方式有兩種
4.1 POSTMAN 調試
使用POSTMAN 調試接口的時候需要對請求的接口添加如下header
Cookie:XDEBUG_SESSION=PHPSTORM
4.2使用Chrom調試
使用Chrom調試需要借助xdebug helper 插件 這個可以在插件商店下載到,安裝好后進行如下配置
上述配置好后即可對調試的頁面打斷點調試了,在調試前記得開啟監聽點擊這個按鈕
配置下運行的server 並開啟監聽
注:我本機的9000端口被php_cgi占用了所以xdebug的監聽端口我是用的是9001 配置前確定你用的端口沒有被占用