Xdebug 连接不适用于 PhpStorm 和 Docker

Xdebug connection not working with PhpStorm and Docker

我在使用 PhpStorm 调试 PHP 时遇到问题。我有容器,它是 运行ning Ubuntu 18.04.2 LTS,我的主机是 macOS 10.14.5。我在 PhpStorm 中添加了配置,但没有命中断点。

所以,这是我的 xdebug.ini 配置:

zend_extension=xdebug.so
xdebug.max_nesting_level = 250
xdebug.remote_port = 9000
xdebug.idekey = "XDEBUG_ECLIPSE"
xdebug.remote_host = "192.168.1.144"
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1
xdebug.var_display_max_depth = -1

#  Enable the debugging on request
xdebug.remote_enable = on
xdebug.remote_autostart = off

# enable logging
xdebug.remote_log=/tmp/xdebug.log

当我 运行 php -m -v 时,我可以在 Zend Modules 下看到 Xdebug 是 enabled/installed。我的 php 版本是 PHP 7.1.32.

192.168.1.144是我主机的IP。我还检查了 PhpStorm 是否配置为侦听端口 9000

当我创建新配置时,我将 IDE key(session id) 设置为 XDEBUG_ECLIPSE,另外,当我在配置下定义服务器时,主机是正确的 (dummy.test),端口设置为 80 , 并且 Debugger 设置为 Xdebug.

我也运行命令tail -f /tmp/xdebug.log,当我刷新页面时,日志文件中没有任何新条目。

知道我错过了什么吗?我在 xy 控制器的一个索引函数上设置了断点,但没有被击中,我还在 PHP 脚本的第一行启用了断点。

所以,在主题所有者的帮助下,发现 Mac host.docker.internal 设置为 doc

作为黑客解决方案主机 ip 已添加到 docker 容器内的 /etc/hostshost-ip host.docker.internal

可能应该有更好的解决方案:)