从命令行启动调试会话
您可以从命令行开始调试 PHP CLI 脚本,让 PhpStorm 侦听传入的调试器连接。
在必要时设置断点。
在工具栏上,单击 Start Listening for PHP Debug Connections按钮或选择 从主菜单
使用调试器选项启动脚本,具体取决于您使用的调试引擎 - Xdebug 或 Zend Debugger。
使用 Xdebug 启动脚本
Xdebug 有各种配置选项,可用于让 PHP 解释器访问 PhpStorm。这些参数必须使用-d
命令行开关传递给 PHP 解释器。更方便的是设置一个不需要一直提供-d
开关的环境变量。
使用 PHP 命令行开关启动脚本并进行调试
使用以下命令行选项启动 PHP:
php -dxdebug.mode=debug -dxdebug.client_host=127.0.0.1 -dxdebug.client_port=9003 -dxdebug.start_with_request=yes path/to/script.phpphp -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_connect_back=0 path/to/script.php
使用环境变量启动脚本并进行调试
设置一个配置 Xdebug 的环境变量:
对于 Windows:
设置 XDEBUG_MODE=debug& 设置 XDEBUG_SESSION=1设置 XDEBUG_CONFIG=remote_enable=1 remote_mode=req remote_host=127.0.0.1 remote_port=9000 remote_connect_back=0适用于 macOS / Linux
导出 XDEBUG_MODE=调试 XDEBUG_SESSION=1导出 XDEBUG_CONFIG="remote_enable=1 remote_mode=req remote_host=127.0.0.1 remote_port=9000 remote_connect_back=0"
正常启动脚本:
php 路径/到/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 显示警告并带有指向服务器页面的链接。