Docker Phpstorm Xdebug不使用ddev

Docker Phpstorm Xdebug不使用ddev,docker,phpstorm,xdebug,ddev,Docker,Phpstorm,Xdebug,Ddev,我正在使用DDEV进行drupal8开发。我在win10pro和ubuntu18.04上有相同的项目。在win10上,我可以在Phpstorm中调试,在ubuntu上调试失败。我已经花了好几个小时找了 在项目的.ddev文件夹中,我确实将“xdebug_enabled”参数设置为true。在ubuntu版本上,我创建了额外的配置,以便从Xdebug接收日志。当ssh进入webserver容器,我在/var/log/xdebug.log检查xdebug日志时,它显示如下内容: I:连接到配置的地址

我正在使用DDEV进行drupal8开发。我在win10pro和ubuntu18.04上有相同的项目。在win10上,我可以在Phpstorm中调试,在ubuntu上调试失败。我已经花了好几个小时找了

在项目的.ddev文件夹中,我确实将“xdebug_enabled”参数设置为true。在ubuntu版本上,我创建了额外的配置,以便从Xdebug接收日志。当ssh进入webserver容器,我在/var/log/xdebug.log检查xdebug日志时,它显示如下内容:

I:连接到配置的地址/端口:host.docker.internal:9000
E:连接到客户端超时(等待时间:200ms):-(

在我可以ping host.docker.internal的容器中,host.docker.internal的IP解析为172.17.0.1

当我检查ubuntu上phpstorm的日志时,它显示: 2018-08-16 13:47:39141[2778275]调试-il.connection.ServerConnection-在端口9000上启动“Xdebug服务器”

似乎没有什么能解决这个问题。我已经从win10导出了我的phpstorm设置(调试可以在那里进行),并将它们导入ubuntu上的phpstorm中,但仍然失败

在phpstorm中,我没有收到任何显示“来自xdebug的新传入连接”的弹出窗口。xdebug在过去确实工作过,但在使用ddev时从未工作过。 在ddev中,它使用2.6.0,phpinfo()的xdebug部分在ubuntu和win10上显示相同的输出。

非常感谢你的帮助。
Geert

这不是DDEV问题,事实上是防火墙导致了问题。 我为ufw创建了一个规则: sudo ufw allow in on docker0 from 172.17.0.0/24 to 172.17.0.1/32 port 9000 comment xdebug sudo ufw允许在docker0上从172.17.0.0/24到172.17.0.1/32端口输入9000注释xdebug

以及iptables的规则: sudo iptables -I INPUT -p tcp -m tcp --dport 9000 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 9000 -j ACCEPT sudo iptables-I输入-p tcp-m tcp--dport 9000-j接受 sudo iptables-A输入-p tcp--dport 9000-j接受 您还需要确保在引导时加载规则


@好的,谢谢您的提示。

您是否导出了端口9000?(docker ps怎么说?)请尝试调试技术,常见问题是主机上的防火墙阻止端口9000。对于ufw用户来说可能更简单,
ufw允许从任何端口到172.17.0.1端口9000
,假设172.17.0.1是docker0的地址。您可以通过
ifconfig docker0