PHPStorm+Xdebug进行emote Debug时无法进入断点问题排查

一、背景

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。

配置完成后,即可进行远程调试。

四、总结

调试是程序开发中必不可少的一部分,但是在实际应用当中,同样会遇到很多问题。通过以上分析和解决,我们可以发现,在进行应用调试时,我们首先需要确认各个配置信息是否正确,并在详细排查了各种可能性后,才能针对问题进行解决。

后端开发标签