一路奔跑 · 2020年04月24日

快速配置xdebug+phpstrom实现断点调试

简单说一下断点调试的使用场景

  1. 当业务代码很复杂,想要知道每一步的变量及对应的值。
  2. 学习一个新框架,熟悉框架的执行流程
  3. 不确定代码会运行到哪一步(不知道在哪var_dump)
  4. 需要var_dump的地方太多,麻烦

进入正题:

1. 开启PHP的xdebug扩展

下载php版本对应的xdebug.dll文件到php扩展目录
修改php.ini配置文件,在末尾添加如下代码

[XDebug]
;这里修改为自己的php_xdebug.dll文件路径
zend_extension="D:\phpStudy\PHPTutorial\php\php-7.0.12-nts\ext\php_xdebug.dll"
;开启远程调试,必须开启
xdebug.remote_enable=1        
xdebug.remote_autostart=1
xdebug.remote_port = 9000  
;xdebug.remote_port和xdebug.idekey这两项如无特殊需求不需要设置,如果设置了需要配置phpstorm的对应参数为相同的值

修改完成后重启apache,打印phpinfo()看到如下信息则配置成功
image.png

注意:如果使用nginx且nginx占用了9000端口,则需要修改remote_port为其他值如9010.phpstorm的调试端口默认也是9000,所以如果remote_port!=9000则需要修改phpstorm的调试端口为相同的值。

2. 配置phpstorm

  1. 点击左上方的Edit Configurations,如下图

image.png

  1. 点击“+”号,选择PHP Web Page

image.png

  1. 在Name项输入你取的名字(如testxdebug),点击“...”并添加服务,如下图红框

image.png
4.在弹框中输入添加“+”号,再输入名称和项目的url,然后点确定。如图
image.png

3. 测试效果

1.添加断点,如下图中的红点
image.png
2.选择之前创建的服务, 把电话(监听)打开,然后点击爬虫
image.png
6.ide将会打开网页,地址为:
image.png
并且,成功进入调试
image.png
image.png
每次点击爬虫都是进入新的一次调试,XDEBUGSESSIONSTART的值都不一样
7.如果想调试该网站的其他页面,只需把
?XDEBUG_SESSION_START=xxxxx 追加到对应的网址上然后请求,就自动进入到单步调试了。
eg:http://www.test.com/xxxx/xxxx...

到这里,恭喜你已经会配置和使用断点调试了!

推荐阅读
关注数
0
文章数
1
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息