小艾的自留地

Stay foolish, Stay hungry

关于如何使用 Xdebug 在本地进行调试,在之前的这篇笔记中,已经详细介绍过了。

而这篇笔记要介绍的是,如何在 Docker 中使用 Xdebug 进行调试。

有两种方式,一种是通过主动开启 Debug 监听,另一种则是配置环境变量。

ini 配置

调试之前需要先安装好 Xdebug 扩展,这里就不过多介绍如何安装了。

编辑 php.ini 配置文件,增加以下配置内容:

1
2
3
4
5
xdebug.mode=develop,debug
xdebug.remote_enable = 1
xdebug.remote_port=9003
xdebug.idekey=ClientHost
xdebug.client_host=host.docker.internal
  • xdebug.remote_enable:开启远程调试
  • xdebug.remote_port:调试监听的端口
  • xdebug.idekey:Xdebug idekey,需要与 PHPStorm 里的配置保持一致
  • xdebug.client_host:宿主机地址

PHPStorm 配置

添加远程调试:

Server 配置:

注意:需要勾选使用路径映射,然后下面对应项目在 Docker 容器中的路径。

使用 PHPStorm 的Web 服务器调试工具验证一下:

如果能看到以上输出,则可以开始调试了。

方式一

开启调试之前,需要先点击右上角的 Debug 按钮,开启调试监听。

正常即可看到,下方的调试器,正在等待 ide key 传入连接。


如果看到的不是等待 ide key 传入连接,通常是因为路径映射有问题,检查一下

如果传入请求的 XDEBUG_SESSION_START 参数的值,正好是自定义的 ide key,断点便会进入。

使用这种方式进行调试,一定记得打开调试,否则断点不会进入。

方式二

下面这种方式,需要在容器中配置环境变量:

1
PHP_IDE_CONFIG='serverName=ClientHost'

环境变量中,指定需要使用的 Server Name。

然后在需要调试的地方,加上断点即可,无需点击 Debug 按钮。

如果没有配置环境变量,则会提示如下信息:

评论