从命令行启动调试会话
您可以从命令行启动 PHP CLI 脚本的调试,PhpStorm 会监听传入的调试器连接。
设置断点 所需的位置。
单击工具栏/状态栏上的
开始侦听PHP 调试连接 或从主菜单中选择 。
根据您使用的调试引擎(Xdebug 或 Zend Debugger),使用调试器选项启动脚本。
使用 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.phpphp -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
使用环境变量启动带调试功能的脚本
设置一个配置 Xdebug 的环境变量:
对于 Windows:
set XDEBUG_MODE=debug& set XDEBUG_SESSION=1set 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=1export XDEBUG_CONFIG="remote_enable=1 remote_mode=req remote_host=127.0.0.1 remote_port=9000 remote_connect_back=0"
正常启动脚本:
php path/to/script.php您可以选择使用 Xdebug 的 remote_autostart (适用于 Xdebug 2)或 start_with_request (适用于 Xdebug 3)设置,以便在运行每个脚本时始终启动调试会话。
使用 Zend Debugger 启动脚本
Zend Debugger 提供多种 配置选项 ,可用于让 PHP 解释器连接到 PhpStorm。 这些参数必须通过环境变量传递给 PHP 解释器:
配置路径映射
要告知 PhpStorm 应为某台机器的连接使用哪个路径映射配置,请将 PHP_IDE_CONFIG 环境变量的值设置为 serverName=SomeName ,其中 SomeName 是 调试服务器配置的名称,该配置在 服务器 页面中定义,请参阅 创建 PHP 调试服务器配置。 根据您使用的操作系统,以以下格式之一设置值:
故障排查
调试服务器配置未通过
PHP_IDE_CONFIG环境变量指定。 在这种情况下,PhpStorm 会从$_SERVER['SSH_CONNECTION']检测主机和端口,并建议创建一个新的 调试服务器配置 (如果不存在)。 即使没有隧道,这也适用于通过 ssh的所有连接。调试服务器配置未通过
PHP_IDE_CONFIG环境变量指定,且$_SERVER['SSH_CONNECTION']未定义。 在这种情况下,会显示一个警告,并附有通过PHP_IDE_CONFIG环境变量指定 调试服务器配置的说明链接。调试服务器配置通过
PHP_IDE_CONFIG环境变量指定,但使用了错误的格式,PhpStorm 会显示一条错误消息并附上说明。PHP_IDE_CONFIG环境变量配置正确,但指定的 调试服务器配置不存在,PhpStorm 会显示一个警告,并附有指向 服务器 页面的链接。