Nginx + php-fpm:只有在xdebug服务器运行时才会出现错误的网关

问题

xdebug服务器从IntelliJ IDEA运行时,当我尝试加载我的站点来触发断点时,我得到了来自nginx502 Bad Gateway

如果我停止xdebug服务器,该网站按预期工作。

所以,我不能运行debugging器,但它以前的工作(!)。 无法确定为什么突然停止工作。

build立

对设置的简短解释(让我知道如果我需要扩大这一点)。

我的php应用程序正在volumes_from容器中运行,并且使用volumes_from composeconfiguration中的volumes_from链接到运行在不同容器中的nginx。

启动应用程序后,我可以validation使用phpinfo(); xdebug模块被加载。

我的xdebug.ini有以下内容:

 zend_extension=xdebug.so xdebug.remote_enable=1 xdebug.remote_host=10.0.2.2 xdebug.remote_connect_back=0 xdebug.remote_port=5555 xdebug.idekey=complex xdebug.remote_handler=dbgp xdebug.remote_log=/var/log/xdebug.log xdebug.remote_autostart=1 

我通过以下步骤获得了remote_host的IP地址(xdebug服务器正在运行):

 docker-machine ssh default route -n | awk '/UG[ \t]/{print $2}' <-- Returns 10.0.2.2 

为了validation我可以从我的PHP容器中debugging服务器,我做了以下步骤

 docker exec -it randomhash bash nc -z -v 10.0.2.2 5555 

根据xdebug服务器运行或不运行给出以下输出:

  • 运行: Connection to 10.0.2.2 5555 port [tcp/*] succeeded!
  • 未运行: nc: connect to 10.0.2.2 port 5555 (tcp) failed: Connection refused

所以IntelliJ IDEA肯定会被设置为在5555上接收连接。我还在源文件path和远程path(在IDEA中设置PHP远程debugging服务器时)之间做了适当的path映射。

有任何想法吗? D,我对这些技术没有太多的经验: