在 PHP 环境下将 Docker 与 Xdebug 和 Sublime Text 集成

问题描述 投票:0回答:2

我正在为我的团队设置 Docker 开发环境。在此环境中,我们希望将 Xdebug 与 Docker 集成以进行调试。似乎最简单的方法是将 Sublime Text 连接到 Docker 实例,然后在 Sublime Text 上安装 Xdebug。我找到了以下将 Sublime Text 与 Docker 集成的指南 (http://domeide.github.io/) 以及将 Xdebug 与 Sublime Text 集成的指南 (https://www.sitepoint.com/debugging-xdebug- sublime-text-3/)。我想知道是否有人有设置类似环境的经验?有没有更简单的方法来做到这一点?这看起来是在 Docker 中调试 PHP 代码的正确方法吗?

php docker sublimetext xdebug sublime-text-plugin
2个回答
1
投票

这个解决方案也可能适用于 Sublime Text - 对于 Visual Studio Code,我最近刚刚开始工作。我发现这些 Remote_host 和其他 Xdebug 设置在使用最新版本的 Docker Community Edition 的 Windows 10 Pro 和 OS X 上都适用。

在 Xdebug 扩展配置中,我将这些与 Xdebug 扩展安装一起设置在包含 php.ini 的 docker hub 镜像包的 Dockerfile 中。在这个答案的底部有一个帖子的链接,介绍了如何在 Dockerfile 中完成此操作以及如何构建映像然后将其添加到 docker-compose 文件中。

  1. 需要关闭
    xdebug.remote_connect_back
    设置:
    xdebug.remote_connect_back=0
  2. 自动启动
    xdebug.remote_autostart=1
    它就可以工作了。
  3. 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

然后根据上面的示例,将 IP 用于主机的

xdebug.remote_host
设置,如下所示:

  1. Windows
    10.0.75.1
  2. 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 开发环境 - 使用 Xdebug 和 VS Code 进行远程调试


0
投票

对我来说,如果我不写这个:

XDEBUG_START_WITH_REQUEST=yes

WSL 下的 Xdebug 不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.