我使用PHPStorm作为调试PHP的主要工具,我非常高兴。到目前为止,我一直在使用Firefox来运行脚本,PHPStorm可以完美地打破它。
现在我遇到的情况是我通过命令行(而不是浏览器)运行PHP脚本,并且想知道是否有办法设置PHPStorm以便在通过命令行运行PHP脚本时捕获中断?
答案 0 :(得分:52)
使用Phpstorm在shell /命令行上启用PHP Debuging with Xdebug非常简单:
export XDEBUG_CONFIG="idekey=PHPSTORM"
在Windows CLI中,使用set而不是export。
set XDEBUG_CONFIG="idekey=PHPSTORM"
确保Phpstorm正在侦听PHP Debug连接。
要从命令行结束禁用调试:
unset XDEBUG_CONFIG
这个(PHPSTORM)是默认的Phpstorm IDE-Key。
答案 1 :(得分:13)
请watch/vote相关的PhpStorm问题。
目前配置有点复杂。应该可以在PhpStorm中使用虚假服务器和 Php远程调试配置进行described in the Zend KB调试。请注意,本教程有错误,您需要像这样设置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将触及断点:
这是在Windows上使用Zend Server安装测试的,但在其他系统和xdebug上应该类似。
如果要直接从PhpStorm进行调试,请使用 Php脚本运行/调试配置类型。为此项目配置的PHP实例必须在配置文件中启用 Zend Debugger 或 Xdebug 。
可以在File | Settings | PHP
中指定PHP主页和调试器模式。
刚刚使用Zend服务器安装(PHP主页:d:\dev\zend\ZendServer\bin
)和Zend Debugger验证,对我来说非常适合。
答案 2 :(得分:5)
如果您运行脚本,可以在此处查看输出:
如果你调试脚本,你可以在这里看到输出:
答案 3 :(得分:2)
检查环境变量SERVER_NAME
和SERVER_PORT
是否已设置。 PHPStorm需要他们做正确的映射。在bash中使用export或在phpscript中手动设置它们。在这两种情况下,PHPStorm都可以在$_SERVER['SERVER_NAME']
和$_SERVER['SERVER_PORT']
下正确找到它。
答案 4 :(得分:1)
对我来说(在MacOS上)它的工作方式如下:
export XDEBUG_CONFIG="idekey=12345"
答案 5 :(得分:0)
这些建议对我来说都行不通。
如果您处于相同情况,请尝试以下命令(检查正确的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]
答案 6 :(得分:0)
在MacOS上,我使用了不同的bash_profile。我必须先运行以下命令:
source ~/.bash_profile
这将我的php从内置的/ usr / bin / php更改为通过XAMPP安装的php。经过上述命令,PHPStorm的XDebug开始工作。