phpstorm如何结合xdebug断点调试php程序?
发布于 作者:苏南大叔 来源:程序如此灵动~
phpstorm里面断点调试的选项,其实有2个,一个是xdebug,另外一个是zend debugger。本篇文章中,苏南大叔的目标是xdebug,所以,大家请自动忽略相关截图中的zend debugger的设置项目,我们只设置xdebug即可。

在php.ini中,我们设置了端口号和idekey。实践中,我们发现,如果你就是本机调试的话,这个idekey也是没用的。据说这个idekey,是用于多个phpstorm在一个server上面调试的情况。既然对于普通情况来说,idekey是无用的,我们也就可以暂时忽略相关设置了。
设置入口
在phpstorm中,xdebug的设置零零散散有好几块,大家跟着苏南大叔进行设置即可。下面的内容里面,我们的前提是:我们先设置了一个域名为php的网站,对应源码路径为 /www/mine/php/ 。下面的截图都基于上述设定,菜单位置基本上都来自于phpstorm的preferences设置。

设置php版本



设置debug

填写好phpini中的端口号即可。
设置DBGP Proxy
据说正确的姿势是下图这样的,但是你也许从网上其它教程中会看到不同的答案。大家都会声明自己的设置是正确的。真相就是:对于本机调试来说,这里是随便填写的,或者不填,都不影响使用。

设置servers

我们需要新增一条记录,对于域名为php的server,我们使用xdebug调试。
在项目源码功能上,编辑右上角的设置。


我们需要新增一条记录,类型为web application,而server则选择为上述servers设置中,我们新设置的server。
开始调试
在项目源码功能上,右上角的几个按钮中,我们需要先点击类似电话样的按钮,开始监听。然后在IDE设置好断点。再点击运行即可。我们可以在phpstorm的最下方看到调试的结果。


关于浏览器的插件
流传的教程中,必须在相关测试使用的浏览器(比如chrome)中,安装对应的插件才可以正常使用调试。例如,chorme下面需要下载xdebug helper。经过实践证明,这个插件和dbgp proxy一样,对于单机调试来说,是没有什么用途的。所以,你大可不必安装。
常见问题
Q:9000 port is busy.
A:php-fpm也用9000端口,你懂的。
Q:Waiting for incoming connection with ide key 'xxxxx'
A:php.ini中需要用zend_extension来加载xdebug.so。
关于dbgp proxy(ide key)的使用情况,有机会的话,苏南大叔将会在接下来的文章中,继续做进阶介绍。对于普通的情况下的单机调试来说,目前,我们的这些设置,都已经足够日常所需了。phpstorm官方有个更详细的E文介绍,如果你有兴趣,可以点击这里查看:
广告
更多苏南大叔的xdebug相关文件,请点击这里查看:https://newsn.net/tag/xdebug/ 。