phpstorm添加xdebug调试功能
转载请注明出处-https://www.cnblogs.com/TS-Alex/articles/11302406.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 配置前确定你用的端口没有被占用