1

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

在项目的 .ddev 文件夹中,我确实将“xdebug_enabled”参数设置为 true。在 ubuntu 的版本上,我创建了额外的配置,以便从 Xdebug 接收日志。当 ssh 进入网络服务器容器并检查 /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:39,141 [2778275] DEBUG - il.connection.ServerConnection - 在端口 9000 上启动“Xdebug Server”

似乎没有什么能解决问题。我已经从win10(调试工作)导出了我的phpstorm-settings并将它们导入到ubuntu上的phpstorm中,但它仍然失败。

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

非常感谢帮助。吉尔特

4

1 回答 1

3

这不是 DDEV 问题,它确实是导致问题的防火墙。我为 ufw 创建了一条规则:

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
您还需要确保在引导时加载规则。

@rfay,感谢您的提示。

于 2018-08-21T20:49:33.147 回答