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

1、首先在PHPstudy设置服务器

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第1张图片

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

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第2张图片

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

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

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第3张图片
4、进入Xdebug官网(https://xdebug.org/)找到你需要的Xdebug

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第4张图片

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

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第5张图片

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

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第6张图片

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第7张图片

7、按照以下提示安装Xdebug

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第8张图片

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

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第9张图片

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

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第10张图片

12、进入PHPStorm进行如下设置

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第11张图片

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第12张图片

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第13张图片

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第14张图片

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第15张图片

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

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第16张图片

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一致,否则会有问题

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第17张图片

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

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第18张图片

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

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

ThinkPHP学习笔记(七)--PHPstorm+PHPstudy+Xdebug断点调试_第19张图片

你可能感兴趣的:(ThinkPHP,PHPstudy,PHPStorm,Xdebug,调试,断点)