这个解决方案也可能适用于 Sublime Text - 对于 Visual Studio Code,我最近才开始工作。我发现这些 remote_host 和其他 Xdebug 设置适用于我在 Windows 10 Pro 和 OS X 上使用最新版本的 Docker 社区版。
在 Xdebug 扩展配置中,我将这些与 Xdebug 扩展安装一起设置在来自 docker hub 的包含 php.ini 的映像包的 Dockerfile 中。此答案底部有一个帖子链接,说明如何在 Dockerfile 中完成此操作,以及如何构建映像然后将其添加到 docker-compose 文件中。
-
xdebug.remote_connect_back 设置需要关闭:xdebug.remote_connect_back=0
- 自动启动
xdebug.remote_autostart=1 它可以正常工作。
- xdebug.remote_host=127.0.0.1 需要根据 Windows 或 OS X 进行如下更改:
运行 Docker 版本 17.03.0-ce-win1 的 Windows 10 Professional,打开命令提示符并输入 ipconfig。该地址列在 DockerNAT 下。例如:
ipconfig
Ethernet adapter vEthernet (DockerNAT):
IPv4 Address. . . . . . . . . . . : 10.0.75.1
运行 Docker 版本 17.03.0-ce-mac2 的 OS X El Capitan,为您现有的子网掩码创建 IP 10.254.254.254 的别名。
sudo ifconfig en0 alias 10.254.254.254 255.255.255.0
然后根据上面的示例为您的主机使用xdebug.remote_host 设置的IP,如下所示:
- 视窗
10.0.75.1
- OS X:
10.254.254.254
注意,如果您在 OS X 中遇到冲突,您可以像这样删除别名。
sudo ifconfig en0 -alias 10.254.254.254
我使用 Visual Studio Code 和 vscode-php-debug PHP 调试适配器来侦听 Xdebug 并逐步执行我的代码。请注意,项目launch.json 文件中需要包含以下内容,以便 VS Code 将远程服务器文件映射到本地计算机。这是来自我的项目及其典型的卷位置,您的 serverSourceRoot 看起来是相同的。
"serverSourceRoot": "/var/www/html",
"localSourceRoot": "${workspaceRoot}"
docker-compose、nginx-proxy 的整个设置,包括如何使用 Xdebug 构建映像等等,请访问Docker WordPress Dev Environment - Remote Debugging with Xdebug and VS Code