【问题标题】:Phpstorm Xdebug not working with ddevPhpstorm Xdebug 不适用于 ddev
【发布时间】:2019-01-23 10:06:51
【问题描述】:

我正在使用 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] 调试 - il.connection.ServerConnection - 在端口 9000 上启动“Xdebug 服务器”

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

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

非常感谢您的帮助。 吉尔特

【问题讨论】:

标签: docker phpstorm xdebug ddev


【解决方案1】:

这不是 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,谢谢你的提示。

【讨论】:

  • 对于 ufw 用户来说可能更简单,ufw allow from any to 172.17.0.1 port 9000,假设 172.17.0.1 是 docker0 的地址。你可以看到ifconfig docker0
猜你喜欢
  • 2020-06-04
  • 2013-07-30
  • 2017-03-28
  • 2020-02-19
  • 1970-01-01
  • 2011-03-04
  • 2012-08-06
  • 2012-01-08
  • 2015-02-20
相关资源
最近更新 更多