一、背景
PHPStorm为php开发者常用的集成开发环境,一般用来进行代码编写、debug等操作。 Xdebug是PHP的一个调试工具,支持远程调试,可以通过与开发环境间建立socket连接,将请求转发到远程机器上进行调试。
二、问题描述
使用PHPStorm配合Xdebug进行远程调试时,无法进入断点。在运行debug模式后通过设置断点,请求代码执行该断点处卡顿并不进入断点,仍按照代码原运行方式执行。
三、问题排查与解决
1. 确认webserver设置,如nginx或php-fpm等,是否正确配置
在phpStorm中运行程序调试模式时,需要在webserver上面启动xdebug的远程调试功能。因此,需要在配置文件中标明远程调试监听地址和端口:
````
xdebug.remote_host=192.168.0.1
xdebug.remote_port=9000
````
2. 设置xdebug配置文件
在xdebug配置文件中,需要设置:
````
xdebug.remote_enable=1 //是否开启远程调试功能
xdebug.idekey="PHPSTORM" //idekey需要与前面phpStorm客户端定义保持一致
````
3. 配置phpstorm进行remote debug调试
在phpstorm中,需要配置如下信息:
(1)打开"Run->edit Configurations",点击左侧"+",添加一个"PHP Remote Debug"类型的配置项,如下图所示:
![Image text](https://img-blog.csdn.net/20170705114045488?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcUpuX3Jlc2l6eV9pbnRlcnZhbC5wbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/50)
(2)调试类型:"PHP Remote Debug"
(3)Server配置:需要设置webserver配置,Address设置为需找的Remote host(即远程调试webserver的本机IP地址)
(4)Inpout勾选"Use pathmappings",设置Web server中的项目根目录,设置为绝对路径。
(5)Advanced配置:Xdebug端口与xdebug.ini文件中配置一样,ide key为PHPStorm。
配置完成后,即可进行远程调试。
四、总结
调试是程序开发中必不可少的一部分,但是在实际应用当中,同样会遇到很多问题。通过以上分析和解决,我们可以发现,在进行应用调试时,我们首先需要确认各个配置信息是否正确,并在详细排查了各种可能性后,才能针对问题进行解决。