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

有关其他调试场景(例如调试 PHP 测试或通过 SSH 进行远程调试),请参阅 调试场景。
1. 安装 Xdebug
Xdebug 调试引擎是 PHP 的一个扩展,因此它被安装到运行您的应用程序的本地或远程 Web 服务器上的 PHP 中。 要安装 Xdebug:
下载与您的 PHP 版本兼容的 Xdebug 扩展 ,并按照 Xdebug 安装指南中的说明进行安装。
如果您使用的是预配置的 AMP(Apache、MySQL、PHP)包,Xdebug 扩展可能已经安装。 请参阅与您的包相关的说明。
编辑相关的 php.ini 文件以将 Xdebug 集成到 PHP 引擎中:
禁用阻止 Xdebug 的 Zend Debugger 和 Zend Optimizer 工具。 为此,请删除或注释掉 php.ini 文件中的以下行:
zend_extension=<path_to_zend_debugger> zend_extension=<path_to_zend_optimizer>启用 Xdebug。 为此,请在 php.ini 文件中找到或创建
[xdebug]部分,并按以下方式更新:[xdebug] zend_extension=xdebug xdebug.mode=debug xdebug.client_host=localhost xdebug.client_port=9003zend_extension:指示应使用 Xdebug 调试引擎的设置。 设置为xdebug或使用xdebug.so文件的完整路径,例如/usr/lib/php/20190902/xdebug.so。xdebug.mode:控制启用哪些 Xdebug 功能的设置。 设置为debug以进行调试。xdebug.client_host:PhpStorm 运行并监听来自 Xdebug 的传入连接的 IP 地址或主机名。 例如,如果 Xdebug 和 PhpStorm 运行在同一台机器上,则为localhost或127.0.0.1。 Xdebug 仅支持连接到一个 IP 地址,但您可以使用 DBGp 代理来 在多用户环境中调试 PHP 应用程序。xdebug.client_port:Xdebug 尝试连接到运行 PhpStorm 的主机上的端口。 默认端口是9003。
通过执行以下任一操作验证 Xdebug 安装:
在命令行中运行以下命令:
php --version输出应列出已安装扩展中的 Xdebug:

创建一个包含以下代码的 php 文件:
<?php phpinfo();在浏览器中打开该文件。
phpinfo输出应包含 Xdebug 部分:
使用 PhpStorm(主菜单中的 )验证 Xdebug 在您的 Web 服务器上的安装和配置,并在有任何不一致时获取修复建议。 详情请参见 验证调试引擎的配置。

2. 为网页浏览器添加调试扩展
指示 Web 服务器激活调试器的最简单方法是使用浏览器扩展。
选择并安装适合您的浏览器的浏览器扩展,例如 Chrome 的 JetBrains 提供的 Xdebug Helper。
有关更多选项和详细信息,请参阅 浏览器调试扩展。
在浏览器中打开应用程序 URL 并激活浏览器扩展。

3. 配置 PhpStorm 以监听传入连接
检查 调试端口 设置在 中是否与 调试器端配置的端口 对应。 默认值是
9003。此外,您可以按照 定义 Xdebug 行为 中的描述,在 PhpStorm 中自定义其他 Xdebug 设置。
在 PhpStorm 工具栏上,切换
以开始监听传入的 PHP 调试连接,或从主菜单中选择 。

4。 开始调试会话
打开 PhpStorm 中的 应用程序开发项目 ,并在代码中设置一个 断点。 可以在 PHP 上下文中设置断点,例如 PHP 、 HTML 、 TWIG 、 BLADE 和其他类型的文件。
行断点 可以通过单击可执行代码行的边距来设置。

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

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

或者,选择 以便调试器在与 PhpStorm 建立连接时立即停止(而不是自动运行直到到达第一个断点)。
回到浏览器,重新加载应用程序页面以启动调试会话并返回到 PhpStorm。
一旦 PhpStorm 检测到来自 Xdebug 的新传入连接,它会显示一个 来自 Xdebug 的传入连接 对话框。

在 来自 Xdebug 的传入连接 对话框中,选择路径映射,以便 PhpStorm 可以将 Web 服务器上的远程文件映射到项目中的本地文件。 如果您定义了 部署配置 ,PhpStorm 将根据您在该配置中已设置的路径提供配置映射的选项。
5. 检查程序状态
调试场景
以下主题将帮助您探索 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 调试问题。
