两天以来,我一直试图使我的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_host
是docker.host.internal
,因为我从本地xdebug.ini复制了配置文件。在Mac上,您可以使用此值。在这种情况下,xdebug.remote_host
将被忽略,因为xdebug.remote_connect_back
已打开。
这是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验证:
似乎一切都应该运行:PhpStorm已正确设置(侦听端口10000)-但事实并非如此!
我尝试了什么:几乎所有东西。我使用了较旧的Xdebug版本,其他的PHP版本……什么也没有。 Xdebug想要连接到我的客户端时总是超时。
我也禁用了xdebug.remote_connect_back
并将HTTP_X_REAL_IP
用作xdebug.remote_host->超时。
然后我认为它可能是nginx代理。所以我尝试了它->同样的错误:超时。
我在做什么错了?
答案 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