ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试

1、首先在PHPstudy设置服务器

2、启动服务器,在PHPStorm中确认是否有以下文件

3、然后在浏览器中输入http://localhost/phpinfo.php

此时会返回一些信息,然后搜索Xdebug,会显示没有


4、进入Xdebug官网(https://xdebug.org/)找到你需要的Xdebug

5、进入download页面后,当你不知道该下载哪个版本时,请使用以下的用户安装指导

6、点击进入之后,在下图方框中粘贴你在第3步中获得PHPinfo信息(此时需要在phpinfo界面右键查看网页源代码后全选复制)

7、按照以下提示安装Xdebug

8、再根据以上配置好php.ini后还需要在配置文件下加入以下代码

zend_extension = "D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug-2.6.1-7.2-vc15-nts.dll"
;是否允许Xdebug跟踪函数调用,跟踪信息以文件形式存储,默认值为0
xdebug.auto_trace=1
;是否允许Xdebug跟踪函数参数,默认值为0
xdebug.collect_params=1
;是否允许Xdebug跟踪函数返回值,默认值为0
xdebug.collect_return=1
;打开xdebug的性能分析器,以文件形式存储,这项配置是不能以ini_set()函数配置的,默认值为0
xdebug.profiler_enable = 1
;性能分析文件的命名规则,默认值为cachegrind.out.%p
xdebug.profiler_output_name = "cachegrind.out.%t.%p"
xdebug.remote_enable = 1
;用于zend studio远程调试的应用层通信协议
xdebug.remote_handler = "dbgp"
xdebug.idekey = PHPSTORM
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000

9、最终完成配置后的代码如下:

[XDebug]
;函数调用跟踪信息输出文件目录,默认值为/tmp
xdebug.profiler_output_dir="D:\phpStudy\PHPTutorial\tmp\xdebug"
;性能分析文件的存放位置,默认值为/tmp
xdebug.trace_output_dir="D:\phpStudy\PHPTutorial\tmp\xdebug"
zend_extension = "D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug-2.6.1-7.2-vc15-nts.dll"
;是否允许Xdebug跟踪函数调用,跟踪信息以文件形式存储,默认值为0
xdebug.auto_trace=1
;是否允许Xdebug跟踪函数参数,默认值为0
xdebug.collect_params=1
;是否允许Xdebug跟踪函数返回值,默认值为0
xdebug.collect_return=1
;打开xdebug的性能分析器,以文件形式存储,这项配置是不能以ini_set()函数配置的,默认值为0
xdebug.profiler_enable = 1
;性能分析文件的命名规则,默认值为cachegrind.out.%p
xdebug.profiler_output_name = "cachegrind.out.%t.%p"
xdebug.remote_enable = 1
;用于zend studio远程调试的应用层通信协议
xdebug.remote_handler = "dbgp"
xdebug.idekey = PHPSTORM
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000

10、完成配置后在PHPstudy中打开Xdebug

11、重复第3步步骤,确认Xdebug安装成功

12、进入PHPStorm进行如下设置

13、完成以上设置后就可以进行断点调试了

2019.7.29补充

在完成以上步骤后理论上应当可以进行调试了,但是有时候,并非能如我们所愿:

在完成第13步之后,我们可以在浏览器中看到以下的地址信息:

其中?XDEBUG_SESSION_START=15289是非常重要的一个字段,如果用postman调试接口的时候,在你的API地址后面就需要加上这个字段才可以进行调试,比如说你要调试一个接口为http:/localhost/test

那么你在postman的发送窗口中需要输入http:/localhost/test?XDEBUG_SESSION_START=15289,同时在PHPstorm中的test函数中打上断点,即可进入。

另外,一定要将以下的setting中的IDE key设置成与第9步中的xdebug.idekey一致,否则会有问题

最后有时候断点还是进不了,那可能是因为你在postman中的设置的?XDEBUG_SESSION_START=15289中的15289不对,有时候浏览器上显示的是这个数值,但是PHPstorm等待的并不是这个数值,那么这个数值最终应该是多少呢?请看下图:

不要问我怎么知道的,我是被坑了很久才找到的,自己开了很多debug,结果一直进不了,瞎折腾就摸索到了这个,该博文只是分享个人遇到的问题,仅作为各位开发过程中的参考,也希望对各位有用!

如有疑问,欢迎添加微信交流

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值