PhpStorm 2025.2 Help

调试 PHP CLI 脚本

PHP 应用程序并不总是 Web 应用程序。 各种命令行工具、守护进程、消息队列处理应用程序和其他类型的应用程序通常运行在 PHP CLI 中。 有几种方法可以启动 PHP CLI 调试会话。 您可以从 PhpStorm 内启动它,让它启动脚本并将调试器附加到脚本。 或者,您可以让 PhpStorm 监听传入的调试器连接,并在 IDE 外部启动脚本。 我们将查看这两种选项。

在开始调试之前,请确保您已安装并正确配置了调试引擎。 PhpStorm 自动化了 Xdebug 的安装和运行过程。 如果您首次尝试运行调试会话时未安装调试器,IDE 会提示您下载并安装相应版本的 Xdebug。

下载并安装 Xdebug 扩展

单击 下载并安装 Xdebug 扩展 以让 PhpStorm 下载 Xdebug 并修改相关的 PHP 配置文件。 如果您希望对安装过程有更多控制,请单击 生成安装脚本 并手动运行命令。

或者,您可以按照 配置 Xdebug配置 Zend Debugger 中的说明手动安装和配置调试引擎。

从 PhpStorm 开始调试会话

要从 PhpStorm 内部调试 PHP CLI 脚本,请执行以下步骤。

创建运行/调试配置

PhpStorm 使用 运行/调试配置 从 IDE 内部执行脚本。 配置可以为 PHP 解释器定义附加参数,并在启动脚本之前启动其他命令。 我们需要一个运行/调试配置来从 PhpStorm 内部启动调试器。

手动为 PHP 脚本创建运行/调试配置

  1. 使用 运行 | 编辑配置(E) 菜单创建一个新的运行/调试配置。

  2. 添加一个 PHP 脚本 类型的新配置,并提供所需的参数,例如要执行的脚本。

  3. 保存创建的运行/调试配置。

为 PHP 脚本生成运行/调试配置

  • 项目 工具窗口中右键单击,并从上下文菜单中选择 调试 | <script name>.php (确保选择标有 PHP 脚本图标 的项目)。 或者,在编辑器中打开脚本,按 Alt+Shift+F9 ,并选择要调试的脚本。

    IDE 将启用调试器启动脚本,并打开 调试工具窗口

启动调试器

在启动调试器之前,请确保已设置 断点 或在 Debug 页面的 设置 对话框中启用了 在PHP 脚本中的第一行中断 选项 Ctrl+Alt+S

  • 单击 PhpStorm 工具栏上的 调试按钮

  • 按下 Alt+Shift+F9

  • 请选择 运行│调试 从主菜单。

在配置的 PHP 解释器之间即时切换

  1. Ctrl+Shift+A 并开始输入 Change PHP interpreter。 在建议列表中,选择 Change PHP interpreter 操作。

    如果需要,您可以直接在建议列表中按 Alt+Enter 为此操作分配键盘快捷键,或者稍后按照 键盘快捷键 中的说明进行分配。

  2. 在打开的弹出菜单中,选择一个配置的 本地远程 PHP 解释器。

所选解释器将被设置为 设置 对话框 Ctrl+Alt+S 页面的默认项目解释器 PHP。 这也会影响使用默认项目解释器的配置(测试框架质量工具运行/调试配置 )以及在 PhpStorm 终端 中运行的命令。

切换 PHP 解释器

从命令行开始调试会话

在运行 CLI 脚本时开始调试会话之前,请确保满足以下任一要求:

  • 启用了 Xdebug 的 remote_autostart (适用于 Xdebug 2)或 start_with_request (适用于 Xdebug 3)选项。

  • 存在 XDEBUG_CONFIG 环境变量。

监听传入的调试器连接

在 PhpStorm 中,通过单击工具栏上的 “开始监听 PHP 调试连接”按钮 或选择 运行 | 开始监听 PHP 调试连接 启用监听传入的调试连接。 这将确保 PhpStorm 在调试会话启动时做出反应,并自动打开 调试工具窗口。 在启动脚本之前,请确保已设置 断点 或在 Debug 页面的 设置 对话框中启用了 在PHP 脚本中的第一行中断 选项 Ctrl+Alt+S

使用调试器选项启动脚本

由于我们将从命令行启动脚本,因此必须确保它以启用调试器所需的设置启动。

使用 Xdebug 启动脚本

Xdebug 有 各种配置选项 ,可用于让 PHP 解释器与 PhpStorm 进行通信。 这些参数必须通过 -d 命令行参数传递给 PHP 解释器。 或者,您可以设置一个环境变量,这样每次就不需要提供 -d 参数。

使用 PHP 命令行开关启动带调试功能的脚本

  • 使用以下命令行选项启动 PHP:

    php -d xdebug.mode=debug -d xdebug.client_host=127.0.0.1 -d xdebug.client_port=9003 -d xdebug.start_with_request=yes path/to/script.php
    php -d xdebug.remote_enable=1 -d xdebug.remote_mode=req -d xdebug.remote_port=9000 -d xdebug.remote_host=127.0.0.1 -d xdebug.remote_connect_back=0 path/to/script.php

使用环境变量启动带调试功能的脚本

  1. 设置一个配置 Xdebug 的环境变量:

    • 对于 Windows:

      set XDEBUG_MODE=debug& set XDEBUG_SESSION=1
      set XDEBUG_CONFIG=remote_enable=1 remote_mode=req remote_host=127.0.0.1 remote_port=9000 remote_connect_back=0
    • 对于 macOS / Linux

      export XDEBUG_MODE=debug XDEBUG_SESSION=1
      export XDEBUG_CONFIG="remote_enable=1 remote_mode=req remote_host=127.0.0.1 remote_port=9000 remote_connect_back=0"
  2. 正常启动脚本:

    php path/to/script.php

    您可以选择使用 Xdebug 的 remote_autostart (适用于 Xdebug 2)或 start_with_request (适用于 Xdebug 3)设置,以便在运行每个脚本时始终启动调试会话。

使用 Zend Debugger 启动脚本

Zend Debugger 有 各种配置选项 ,可用于让 PHP 解释器与 PhpStorm 进行通信。 这些参数必须通过环境变量传递给 PHP 解释器。

使用调试功能启动脚本

  1. 设置 QUERY_STRING 环境变量:

    set QUERY_STRING=start_debug=1&debug_host=127.0.0.1&no_remote=1&debug_port=10137&debug_stop=1
    export QUERY_STRING="start_debug=1&debug_host=127.0.0.1&no_remote=1&debug_port=10137&debug_stop=1"
  2. 正常启动脚本:

    php path/to/script.php

可选地,为了告诉 PhpStorm 应为某台机器的连接使用哪个路径映射配置,应将 PHP_IDE_CONFIG 环境变量的值设置为 serverName=SomeName ,其中 SomeName 是在 PHP | 服务器 对话框的 设置 页面(Ctrl+Alt+S )中配置的服务器名称。

set PHP_IDE_CONFIG=serverName=SomeName
export PHP_IDE_CONFIG="serverName=SomeName"

Debug

脚本启动后,PhpStorm 将打开 调试工具窗口 并在脚本中设置的第一个断点处暂停。 现在,您可以按照 检查挂起的程序 中的说明继续调试 PHP CLI 脚本。

如果正在调试的脚本不是 PhpStorm 中打开的项目的一部分,IDE 仍会在编辑器中打开该脚本并在第一条语句处暂停执行。 这使得即使没有 PhpStorm 项目,也可以快速调试任何 PHP CLI 脚本。

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