Phpstorm Xdebug无法与ddev合作

时间:2018-08-16 12:32:20

标签: docker phpstorm xdebug ddev

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

在项目的.ddev文件夹中,我确定确实将“ xdebug_enabled”参数设置为true。在ubuntu的版本上,我创建了其他配置,以便接收来自Xdebug的日志。 ssh进入Web服务器容器时,我在/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

非常感谢。 吉尔特

1 个答案:

答案 0 :(得分:2)

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

 sudo ufw allow in on docker0 from 172.17.0.0/24 to 172.17.0.1/32 port 9000 comment 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,感谢您的提示。