在PHPStorm中运行的xdebug无法连接到远程服务器

时间:2015-06-24 23:52:44

标签: php debugging phpstorm xdebug remote-debugging

问题

我试图在我的盒子和运行在远程服务器上的webapp之间运行xdebug。

我在我的开发箱上通过PHPStorm运行xdebug。启动调试器后我卡住了。 PHPStorm调试器窗口挂起"等待与ide键的传入连接' PHPStorm'"

远程服务器配置

在远程服务器上,我们的sys admin安装了xdebug。服务器具有以下设置:

xdebug.remote_port  9000
xdebug.default_enable   On  
xdebug.remote_enable    On
xdebug.remote_connect_back  On

请注意,remote_connect_back已启用。我为多开发人员环境配置了这个。这将导致xdebug.remote_host被忽略(这就是为什么我没有将它包含在那里)。

我正在使用Firefox"最简单的xdebug"添加在。如果我在禁用xdebug插件的情况下刷新页面,页面加载就好了。

如果我为该页面启用插件并刷新,该页面将一直挂起,直到超时。我相信这告诉我xdebug正在运行,至少在尝试做某事。对?到目前为止一切都很好。

客户端配置

我在我的本地开发盒上运行PHPStorm。我还在我的开发盒上安装了xdebug。这是来自php -i的一些相关输出:

xdebug support => enabled
xdebug.default_enable => On => On
xdebug.idekey => PHPStorm => PHPStorm
xdebug.remote_enable => On => On
xdebug.remote_port => 9000 => 9000
xdebug.remote_host => localhost => localhost
xdebug.remote_connect_back => Off

我在服务器上使用xdebug 2.2.3版,在客户端上使用2.2.7。我需要使用旧版本,因为我们仍然坚持使用PHP 5.3 ...至少目前是这样。客户端和服务器都运行PHP 5.3。

在PHPStorm中,我设置了一个连接到远程服务器的服务器配置:

devops-dev.ourcloud.com

我有一个路径映射到服务器上的绝对路径:var / www / api / apidev.ourcloud.com / current

等待端口9000.我将PHPStorm中的IDEKey设置为" PHPStorm"。

结果

我单击手机以侦听调试器连接并单击绿色调试器图标,然后在调试器视图中,我看到:

等待使用ide键的传入连接' PHPStorm'

就是这样。我似乎没有连接到服务器。

有什么线索导致这种情况,甚至我怎么能够更好地调试这个?

1 个答案:

答案 0 :(得分:0)

看起来这是防火墙问题。我能够通过从客户端到我的服务器运行ssh隧道来解决问题:

ssh -f -N -T -R9000:localhost:9000 theserver

我也能够使用netcat从服务器到客户端找到这个问题。

来自服务器:nc client 9000

这表明该端口已被阻止。