工具和环境
phpstorm 2018
php5.6 线程安全
xdebug
1.下载和安装xdebug
1.1 查看自己phpinfo信息
比如我这里是php 5.6 ,线程安全版本
1.2 xdebug 官网
Xdebug: Historical Releases
根据自己的php版本选择要下载的dll文件
如果是高版本一点的php , xdebug官方设置了这个网址协助我们选择下载
http://xdebug.org/wizard.php
1.3 配置php.ini 和安装 xdebug
把刚刚下载的dll文件重命名为 php_xdebug.dll (当然你也可以不重命名,只是感觉看上去简洁点)
复制到php下的ext目录
修改php.ini配置 , 路径请自行修改哈
[xdebug]
zend_extension="E:\dev\php56\ext\php_xdebug.dll"
xdebug.remote_enable=On
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.auto_trace=on
xdebug.idekey=PHPSTORM
xdebug.collect_return=On
xdebug.collect_params=On
注意这里是 zend_extension ,刚开始没注意我用的是 extension ,导致后期使用一直调不通
1.4 重启apache ,查看phpinfo ,出现如下信息证明 安装成功
2.配置phpstorm
好了 ,xdebug 已经安装成功了,接下来我们来设置phpstorm。
2.1 配置php解析器 File -> settings ->Languages & Frameworks -> PHP ,选择对应的版本
2.2 配置 xdebug 端口
跟我们 php.ini 里 xdebug.remote_port 的端口号保持一致即可 ,其他默认
2.3 配置代理 PHP下面的 Debug -》 DBGp
还是对应php.ini里的配置 分别对应 xdebug.idekey , xdebug.remote_host ,xdebug.remote_port
2.4 配置 服务器 server
2.5 配置好后 回到你的项目 点击右上角
2.6 添加调试项目 ,这里以网站应用为例,选择 PHP Web Page
2.7 然后进去后参考这个配置
Name 名字自己随便写个
Server 上面也已经配置好,直接下拉选择
Start URL 就是debug 运行后出现的页面
Browser 这里我们选择 Firefox ,因为我们选择的是网页应用 ,调试时会打开浏览器
另外 你可以验证一下 你的配置是否已经打通
2.8 Run勾选上Break at first line in PHP scripts
3.火狐安装xdebug插件
一般选择火狐 ,谷歌浏览器 国内连不上插件商店 ,需要fq
这个看你调试的项目 ,如果是接口 ,内部程序那些 ,就不用 。如果是网页应用一般都需要
打开火狐浏览器 , 打开扩展中心 ,搜索Xdebug helper ,安装好开启即可
4.开始调试
4.1 点击这里 确保此处是绿色
此处是phpstorm的反向代理服务,就是我们刚配置的 DBGp 这里
4.2 在项目中设置好断点
4.3 然后点击绿色的小虫 开始快乐的调试吧
调试运行后 ,会启动浏览器 出现这样的链接 www.xxx.com/?XDEBUG_SESSION_START=11635
调试面板也会变成这样, 可以看到变量和文件信息
调试面板里一些按钮的含义:
名字 | 快捷键 | 含义 | |
Resume Program | F9 | 一步步按顺序执行断点,如果执行到子文件或子函数里有断点,则进入,没有则跳过 | |
Step into | F7 | 调试每一行 ,单步执行,进入子函数 | |
Step Over | F8 | 调试一行代码,不进入子函数;如果没有子函数,功能与Step Into一样 |
5. 可能会遇到的问题
5.1 遇到 Cannot accept external Xdebug connection: Cannot evaluate expression 'isset($_SERVER['PHP_IDE_CONFIG'])'
检查php.ini配置 ,把 extension 改为zend_extension
5.2 点击代理的按钮 点不动 ,调试没法启动
试试检查你设置的端口,我这里是9001 ,是否被占用 ; 同样可以检查代理是否已经启动
6.参考
PhpStorm配置debug环境_phpstorm debug_easyrce的博客-CSDN博客
在PHPStorm下进行断点调试_phpstorm 断点_英星有情的博客-CSDN博客