我刚刚在我的机器上设置了 Docker 并且有一个 Nginx/PHP7 (FPM)/MySQL 设置一切正常,但是在 PHP 容器上安装了 Xdebug 我无法让它连接回我主机上的 PHPStorm。
这是我的 PHP Xdebug 配置...
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-
20151012/xdebug.so
xdebug.remote_log=/usr/local/var/log/xdebug.log
xdebug.remote_enable=1
xdebug.remote_host=192.168.99.1
xdebug.remote_port=9000
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true
Run Code Online (Sandbox Code Playgroud)
浏览时,如果为容器设置了 Xdebug 启用 cookie,则不会提示连接。如果我浏览一个本地托管的站点,那么我知道 PHPStorm 的收听是正确的。
在本地机器上,我可以 telnet 到端口 9000...
$ telnet 192.168.99.1 9000
Trying 192.168.99.1...
Connected to 192.168.99.1.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
Run Code Online (Sandbox Code Playgroud)
...但是我不能从 boot2docker VM 或容器。当我尝试时,它只是坐在那里什么都不做。然而,VM 和容器都可以很好地 ping 主机。
我试过禁用我的 Mac 的防火墙,但仍然没有乐趣。
我不太确定如何禁用 boot2docker VM 上的防火墙。
任何有关为什么这不起作用的见解都将受到极大欢迎。提前致谢。
我最近在Docker社区上阅读了很多关于如何使用Docker for Mac在PHPStorm中调试PHP应用程序的帖子.所有这些都包含有用的信息,但没有在一个地方看到工作解决方案.