在远程主机上运行的Xdebug:无法连接回客户端->超时

时间:2019-09-07 07:49:16

标签: php docker debugging phpstorm xdebug

两天以来,我一直试图使我的Xdebug配置无法成功运行,这使我发疯!

我的设置

客户端:带有PhpStorm的Macbook Pro

Xdebug在jwilder / nginx代理后面的Docker(最新稳定版本)容器中的远程服务器(Ubuntu 18.04)上运行。

Xdebug在PHP 7.3.9上运行,Xdebug版本为2.7.2

Xdebug设置:

xdebug.remote_enable=1
xdebug.remote_host=host.docker.internal
xdebug.remode_mode=req
xdebug.remote_handler=dbgp
xdebug.remote_port=10000
xdebug.idekey=PHPSTORM
xdebug.remote_connect_back=1
xdebug.remote_autostart=1
xdebug.remote_log=/var/log/xdebug.log

xdebug.remote_hostdocker.host.internal,因为我从本地xdebug.ini复制了配置文件。在Mac上,您可以使用此值。在这种情况下,xdebug.remote_host将被忽略,因为xdebug.remote_connect_back已打开。

这是phpinfo页面(太大,无法在此处显示实际图像)。

phpinfo

这是我的xdebug日志文件中的输出

[17] Log opened at 2019-09-07 07:40:29
[17] I: Checking remote connect back address.
[17] I: Checking header 'HTTP_X_FORWARDED_FOR'.
[17] I: Remote address found, connecting to 178.203.235.46:10000.
[17] E: Time-out connecting to client (Waited: 200 ms). :-(
[17] Log closed at 2019-09-07 07:40:29

这是我在PhpStorm中进行的远程Xdebug验证:

Xdebug validation in PhpStorm

似乎一切都应该运行:PhpStorm已正确设置(侦听端口10000)-但事实并非如此!

我尝试了什么:几乎所有东西。我使用了较旧的Xdebug版本,其他的PHP版本……什么也没有。 Xdebug想要连接到我的客户端时总是超时。

我也禁用了xdebug.remote_connect_back并将HTTP_X_REAL_IP用作xdebug.remote_host->超时。

然后我认为它可能是nginx代理。所以我尝试了它->同样的错误:超时。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

几年前,我写了这篇帖子,可能会有所帮助:https://medium.com/@pavlakis/setting-up-xdebug-with-docker-and-php-7-2-f5a6553cb956

如果您使用的代理为您提供了不同的IP,请尝试以下操作:https://github.com/phpminds/website/blob/master/docker.sh