使用 PHPStorm 和 Docker 容器的 Xdebug

Xdebug with PHPStorm and a Docker container

设置:Windows10; Docker 运行 Boot2Docker 在 Hyper-V 上; PHPStorm 9

VM 上的网络服务器是 Nginx。我已经为 php5-fpm 配置了 xdebug.ini 为:

zend_extension=xdebug.so
xdebug.remote_enable=on
xdebug.remote_port=9000
xdebug.remote_connect_back=On
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0

如果我设置断点并重新加载页面,我会从 PHPStorm 中的 Xdebug 获得传入连接:

我想知道只显示了一个文件,而不是整个项目,它要大得多。如果我接受连接,我可以调试第一行,但它不会在我的断点处停止并创建一个服务器条目,如下所示:

很奇怪host是空的 我已经添加了具有正确映射的服务器,但它被忽略了。

那么如何让 Xdebug 在断点处停止?

What is very strange that host is empty.

PhpStorm 需要填写此字段,因为它使用此字段来识别要使用的服务器条目(以及路径映射)——IDE 支持在不同域上调试相同的代码库 运行 / 远程服务器。

在这种特殊情况下,您的 nginx 配置的 servername 字段/参数为空。您可以通过在 nginx 配置文件中提供一些值来解决此问题。