返回

Xdebug 3.0.0RC1 调试遇到的“无法连接到调试客户端”错误解决指南

php

解决 Xdebug 3.0.0RC1 中的“无法连接到调试客户端”错误

在使用 Xdebug 和 PhpStorm 进行 PHP 调试时,你可能会遇到“无法连接到调试客户端”错误。这个错误可能是由于多种原因造成的,但通常可以通过以下步骤解决。

验证环境

  • 确保 Fedora 版本为 33 或更高版本。
  • 确保 Docker 版本为 19.03.13 或更高版本。
  • 确保 PhpStorm 版本为 2020.3 EAP 或更高版本。

配置 Xdebug

在 php.ini 文件中,配置 Xdebug 如下:

zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal
xdebug.client_port=9003

启动调试

在 PhpStorm 中,启动调试会话。在运行配置中,确保以下设置正确:

  • 调试器: Xdebug
  • 远程调试: 启用
  • 远程主机: host.docker.internal
  • 远程端口: 9003

验证连接

重新启动调试会话。如果连接成功,你将看到以下消息:

[17-Nov-2020 15:24:40 UTC] Xdebug: [Step Debug] Connected to debugging client host.docker.internal:9003

提示

  • “host.docker.internal”: 该主机名在 Docker for Mac 和 Docker for Windows 中受支持。它将解析为 Docker 主机机的 IP 地址。
  • 9003 端口: 这是 Xdebug 3 中的默认端口。
  • 检查端口转发: 确保 Docker 已正确配置端口转发。
  • 检查防火墙: 确保防火墙允许在 9003 端口上进行通信。

常见问题解答

1. 为什么我仍然收到“无法连接到调试客户端”错误?

  • 确保所有环境和配置设置都正确。
  • 检查端口转发和防火墙设置。
  • 重新启动 Docker 和 PhpStorm。

2. 如何在 PhpStorm 中启用 Xdebug?

  • 在 PhpStorm 中,转到“设置”>“PHP”>“调试”。
  • 选择“Xdebug”作为调试器。
  • 启用“远程调试”。

3. 如何在 Docker 中安装 Xdebug?

  • 从 Docker Hub 下载 Xdebug 镜像。
  • 创建一个 Docker 容器并安装 Xdebug。
  • 将容器链接到你的 PHP 应用程序。

4. 如何配置 Xdebug 监听不同的端口?

  • 在 php.ini 文件中,编辑 xdebug.client_port 设置。
  • 在 PhpStorm 运行配置中,更新远程端口。

5. 如何检查 Xdebug 是否已连接到 PhpStorm?

  • 在 PhpStorm 调试器面板中,查找“Xdebug 连接”状态。
  • 如果连接成功,你会看到“已连接”状态。