PhpStorm 2025.2 Help

使用 PhpStorm 调试

快速开始

以下是使用 PhpStorm 和 Xdebug 3 调试运行在本地或远程 Web 服务器上的 PHP 应用程序的快速入门指南。

Xdebug 和 PhpStorm 快速开始

有关其他调试场景(例如调试 PHP 测试或通过 SSH 进行远程调试),请参阅 调试场景

1. 安装 Xdebug

Xdebug 调试引擎是 PHP 的一个扩展,因此它被安装到运行您的应用程序的本地或远程 Web 服务器上的 PHP 中。 要安装 Xdebug:

  1. 下载与您的 PHP 版本兼容的 Xdebug 扩展 ,并按照 Xdebug 安装指南中的说明进行安装。

    如果您使用的是预配置的 AMP(Apache、MySQL、PHP)包,Xdebug 扩展可能已经安装。 请参阅与您的包相关的说明。

  2. 编辑相关的 php.ini 文件以将 Xdebug 集成到 PHP 引擎中:

    1. 禁用阻止 Xdebug 的 Zend DebuggerZend Optimizer 工具。 为此,请删除或注释掉 php.ini 文件中的以下行:

      zend_extension=<path_to_zend_debugger> zend_extension=<path_to_zend_optimizer>
    2. 启用 Xdebug。 为此,请在 php.ini 文件中找到或创建 [xdebug] 部分,并按以下方式更新:

      [xdebug] zend_extension=xdebug xdebug.mode=debug xdebug.client_host=localhost xdebug.client_port=9003
      • zend_extension :指示应使用 Xdebug 调试引擎的设置。 设置为 xdebug 或使用 xdebug.so 文件的完整路径,例如 /usr/lib/php/20190902/xdebug.so

      • xdebug.mode :控制启用哪些 Xdebug 功能的设置。 设置为 debug 以进行调试。

      • xdebug.client_host :PhpStorm 运行并监听来自 Xdebug 的传入连接的 IP 地址或主机名。 例如,如果 Xdebug 和 PhpStorm 运行在同一台机器上,则为 localhost127.0.0.1。 Xdebug 仅支持连接到一个 IP 地址,但您可以使用 DBGp 代理来 在多用户环境中调试 PHP 应用程序

      • xdebug.client_port :Xdebug 尝试连接到运行 PhpStorm 的主机上的端口。 默认端口是 9003

  3. 通过执行以下任一操作验证 Xdebug 安装:

    • 在命令行中运行以下命令:

      php --version

      输出应列出已安装扩展中的 Xdebug

      已安装 Xdebug 扩展
    • 创建一个包含以下代码的 php 文件:

      <?php phpinfo();

      在浏览器中打开该文件。 phpinfo 输出应包含 Xdebug 部分:

      已启用 Xdebug 3 支持
    • 使用 PhpStorm(主菜单中的 运行 | Web 服务器调试验证 )验证 Xdebug 在您的 Web 服务器上的安装和配置,并在有任何不一致时获取修复建议。 详情请参见 验证调试引擎的配置

      Xdebug 配置检查

2. 为网页浏览器添加调试扩展

指示 Web 服务器激活调试器的最简单方法是使用浏览器扩展。

  1. 选择并安装适合您的浏览器的浏览器扩展,例如 Chrome 的 JetBrains 提供的 Xdebug Helper

    有关更多选项和详细信息,请参阅 浏览器调试扩展

  2. 在浏览器中打开应用程序 URL 并激活浏览器扩展。

    Chrome 中的 Xdebug 助手

3. 配置 PhpStorm 以监听传入连接

  1. 检查 调试端口 设置在 设置 Ctrl+Alt+S | PHP | 调试 | Xdebug 中是否与 调试器端配置的端口 对应。 默认值是 9003

    此外,您可以按照 定义 Xdebug 行为 中的描述,在 PhpStorm 中自定义其他 Xdebug 设置。

  2. 在 PhpStorm 工具栏上,切换 “开始监听 PHP 调试连接”按钮 以开始监听传入的 PHP 调试连接,或从主菜单中选择 运行 | 开始侦听PHP 调试连接

    开始监听传入的 Xdebug 连接

4。 开始调试会话

  1. 打开 PhpStorm 中的 应用程序开发项目 ,并在代码中设置一个 断点。 可以在 PHP 上下文中设置断点,例如 PHP HTML TWIG BLADE 和其他类型的文件。

    • 行断点 可以通过单击可执行代码行的边距来设置。

      行断点
    • 条件断点 仅在满足指定条件(例如循环中的特定项)时命中。 要指定条件,请设置一个行断点并右键单击它以打开断点设置对话框。

      命中条件断点
    • 使用 异常断点 时,当抛出异常或错误,或发出 PHP 通知或警告时,调试器会暂停应用程序代码的执行。 要设置异常断点,请参阅 使用 PHP 异常断点进行调试

      命中异常断点

    或者,选择 运行 | 在 PHP 脚本的第一行暂停 以便调试器在与 PhpStorm 建立连接时立即停止(而不是自动运行直到到达第一个断点)。

  2. 回到浏览器,重新加载应用程序页面以启动调试会话并返回到 PhpStorm。

    一旦 PhpStorm 检测到来自 Xdebug 的新传入连接,它会显示一个 来自 Xdebug 的传入连接 对话框。

    传入的调试器连接 Xdebug

    来自 Xdebug 的传入连接 对话框中,选择路径映射,以便 PhpStorm 可以将 Web 服务器上的远程文件映射到项目中的本地文件。 如果您定义了 部署配置 ,PhpStorm 将根据您在该配置中已设置的路径提供配置映射的选项。

5. 检查程序状态

  1. 到达断点后,调试器将暂停。 您现在可以在 PhpStorm 的 调试工具窗口中调查应用程序。

    应用程序在断点处停止

    有关检查程序数据(帧、变量等)的更多信息,请参阅 检查挂起的程序

  2. 继续运行程序,并在再次暂停时检查其帧。

    • 要手动控制程序执行,请使用 运行 菜单或工具栏按钮下的命令逐步执行代码: 单步进入 &#xa0; F7单步退出 &#xa0; Shift+F8单步跳过 &#xa0; F8 等。 欲了解更多信息,请参阅 逐步执行程序

    • 要使程序自动运行到下一个断点,请选择 运行 | 调试操作 | 恢复程序 或按 F9 恢复会话。

调试场景

以下主题将帮助您探索 PhpStorm 中的调试场景:

零配置调试

快速开始 指南中描述的调试场景使用了所谓的 零配置调试 方法,这意味着您无需像在 PhpStorm 中运行或测试 PHP 应用程序时那样创建 运行/调试配置

如果您希望使用运行/调试配置运行调试会话,请参阅 使用 PHP 网页调试配置进行调试

调试 PHP CLI 脚本

除了在 Web 服务器上运行和调试整个应用程序,您可能还希望在 PhpStorm 中调试特定的 PHP 脚本,或运行附带调试引擎的 PHPUnit、Behat 或其他测试 从编辑器调试测试

在这种情况下,调试引擎与在 PhpStorm 中配置的 本地远程 PHP 解释器一起设置。

如需了解更多信息,请参见 调试 PHP CLI 脚本

调试 PHP 框架 CLI 命令
同时调试会话

在构建具有多层结构的 Web 应用程序时,您可以让前端 PHP 代码调用后端 PHP 代码。 同时调试会话 描述了从前端代码进入后端代码并同时调试它们的几种方法。

通过 Xdebug 代理进行多用户调试

Xdebug 仅支持连接到运行 PhpStorm IDE 的单个 IP 地址。 要在 多用户环境 中调试 PHP 应用程序,请参阅 通过 Xdebug 代理进行多用户调试

通过 SSH 隧道进行远程调试

通过 SSH 隧道进行远程调试 描述了如何使用 SSH 隧道在 Xdebug 和 PhpStorm 运行在不同机器上时建立安全连接,以及在两台机器之间无法直接连接时的操作方法。

故障排查

有关一些常见配置问题的描述以及如何排查它们,请参阅 排查常见 PHP 调试问题

最后修改日期: 2025年 9月 26日