调试PHPStorm中的PHP命令行脚本
我使用PHPStorm作为调试PHP的主要工具,我非常高兴。到目前为止,我一直在使用Firefox来运行这些脚本,并且PHPStorm能够完美地捕捉到这些内容。调试PHPStorm中的PHP命令行脚本
现在我遇到了一种情况,即通过命令行(而不是浏览器)运行PHP脚本,并想知道是否有方法通过命令行运行PHP脚本时设置PHPStorm来捕捉中断?
请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。
PHP主页和调试器模式可以在File | Settings | PHP
中指定。
刚刚通过Zend服务器安装(PHP主页:d:\dev\zend\ZendServer\bin
)和Zend Debugger进行验证,对我来说非常合适。
+1非常感谢!使用** PHP脚本**运行/调试配置类型是一个可以接受的解决方法 - 我尝试了它并使其工作。但是,这并不理想,因为我必须为每个要运行第三方外部工具的脚本设置配置。如果我可以使用**外部工具**机制并让PHPStorm捕捉中断,那将会很好,但我想我必须等待! – JoshuaDavid 2011-03-15 20:31:56
我已经使用纯粹的远程配置指南更新了我的回复,因为在Zend知识库文章中引用不正确,所以之前无法使用。 – CrazyCoder 2011-03-15 20:39:38
谢谢! '虚拟'方法非常好,而且在运行外部工具时需要大量通用。 – JoshuaDavid 2011-03-15 20:46:02
检查设置了环境变量SERVER_NAME
和SERVER_PORT
。 PHPStorm需要他们做正确的映射。将它们设置为在bash中导出或在phpscript中手动导入。在这两种情况下,PHPStorm都可以正确找到$_SERVER['SERVER_NAME']
和$_SERVER['SERVER_PORT']
。
这整理了我的映射,谢谢!虽然它只在我用bash导出变量时才起作用 - 在PHP脚本中设置它们本身不起作用。 – Alex 2014-04-03 17:13:23
要与Phpstorm壳/命令行上启用PHP调试运行与Xdebug的是很容易的:
export XDEBUG_CONFIG="idekey=PHPSTORM"
在Windows的命令行,请使用设置的,而不是出口。
set XDEBUG_CONFIG="idekey=PHPSTORM"
确保Phpstorm正在侦听PHP调试连接。
为了从命令行端禁用调试:
unset XDEBUG_CONFIG
这(PHPSTORM)是默认的Phpstorm IDE-密钥。
谢谢,它的作品! – 2013-08-19 17:01:58
这应该是被接受的答案!它的作用就像一个魅力 – WonderLand 2013-08-29 16:21:43
在Windows CLI中使用'set XDEBUG_CONFIG =“idekey = PHPSTORM”' – 2014-08-29 12:25:11
- 单击运行。
- 点击编辑配置...
- 点击绿色+
- 选择PHP脚本。
- 在名称字段中提供名称。
- 在“文件”字段中提供脚本的完整路径。
- 单击确定。
- 选择您刚才在此下拉列表中配置的脚本:
- 点击运行或调试按钮。你的脚本应该运行,它应该捕获设置的任何断点。
如果您运行脚本,你可以看到此输出:
如果调试脚本,你可以看到此输出:
请参阅下面的[Venkat's answer](http://*.com/a/17429641/1924128)了解简单解决方案。目前接受的答案已过时。 – 2015-10-08 21:32:25