当xdebug服务器从IntelliJ IDEA运行时,当我尝试加载我的站点来触发断点时,我得到了来自nginx的502 Bad Gateway
。
如果我停止xdebug服务器,该网站按预期工作。
所以,我不能运行debugging器,但它以前的工作(!)。 无法确定为什么突然停止工作。
对设置的简短解释(让我知道如果我需要扩大这一点)。
我的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,我对这些技术没有太多的经验: