我使用PHPStorm作为调试 PHP 的主要工具,我非常高兴。到目前为止,我一直在使用 Firefox 运行脚本,PHPStorm 完美地捕捉到了中断。
现在我有一种情况,我正在通过命令行(而不是浏览器)运行 PHP 脚本,并且想知道是否有办法设置 PHPStorm 以在通过命令行运行 PHP 脚本时捕捉中断?
我使用PHPStorm作为调试 PHP 的主要工具,我非常高兴。到目前为止,我一直在使用 Firefox 运行脚本,PHPStorm 完美地捕捉到了中断。
现在我有一种情况,我正在通过命令行(而不是浏览器)运行 PHP 脚本,并且想知道是否有办法设置 PHPStorm 以在通过命令行运行 PHP 脚本时捕捉中断?
使用 Phpstorm 在 shell/命令行上使用 Xdebug 启用 PHP 调试非常简单:
export XDEBUG_CONFIG="idekey=PHPSTORM"
在 Windows CLI 中,使用 set 而不是 export。
set XDEBUG_CONFIG="idekey=PHPSTORM"
确保 Phpstorm 正在侦听 PHP 调试连接。
要从命令行端禁用调试:
unset XDEBUG_CONFIG
这个 (PHPSTORM) 是默认的 Phpstorm IDE-Key。
请观看/投票相关的 PhpStorm 问题。
目前配置有点复杂。应该可以像Zend KB 中描述的那样进行调试,在 PhpStorm 中使用假服务器和Php 远程调试配置。请注意,本教程有一个错误,您需要像这样设置 QUERY_STRING(在 Windows 上):
SET "QUERY_STRING=start_debug=1&debug_port=10137&debug_host=127.0.0.1&debug_stop=1&no_remote=1&debug_session_id=10000"
(请注意引用的区别,这很重要)。
如屏幕截图所示设置 PhpStorm:
按主工具栏上的调试按钮。PhpStorm 将开始侦听调试器连接。
在命令行中运行您的脚本:
d:\dev\zend\ZendServer\bin\php.exe d:\work\attaches\sample\helps.php
PhpStorm 将遇到断点:
这在安装了 Zend Server 的 Windows 上进行了测试,但在其他系统和 xdebug 上应该是类似的。
如果要直接从 PhpStorm 调试,请使用Php Script Run/Debug 配置类型。为此项目配置的 PHP 实例必须在配置文件中启用Zend Debugger或Xdebug 。
PHP home 和调试器模式可以在File | Settings | PHP
.
刚刚通过 Zend 服务器安装(PHP 主页d:\dev\zend\ZendServer\bin
:)和 Zend Debugger 进行了验证,对我来说非常适合。
如果你运行脚本,你可以在这里看到输出:
如果你调试脚本,你可以在这里看到输出:
检查环境变量SERVER_NAME
并SERVER_PORT
设置。PHPStorm 需要他们做正确的映射。在 bash 中使用 export 或在 phpscript 中手动设置它们。$_SERVER['SERVER_NAME']
在这两种情况下,PHPStorm 都可以$_SERVER['SERVER_PORT']
正确地找到它。
这些建议都不适合我。
如果您处于相同情况,请尝试此命令(检查正确的 php 解释器路径)
/usr/bin/php -dzend_extension=xdebug.so -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=1 [PHP_SCRIPT]
对我来说(在 MacOS 上)它是这样工作的:
export XDEBUG_CONFIG="idekey=12345"
在 MacOS 上,我使用了不同的 bash_profile。我必须先运行以下命令:
source ~/.bash_profile
这将我的 php 从内置的 /usr/bin/php 更改为通过 XAMPP 安装的。PHPStorm 的 XDebug 在上述命令后开始工作。