调试PHPStorm中的PHP命令行脚本

问题描述:

我使用PHPStorm作为调试PHP的主要工具,我非常高兴。到目前为止,我一直在使用Firefox来运行这些脚本,并且PHPStorm能够完美地捕捉到这些内容。调试PHPStorm中的PHP命令行脚本

现在我遇到了一种情况,即通过命令行(而不是浏览器)运行PHP脚本,并想知道是否有方法通过命令行运行PHP脚本时设置PHPStorm来捕捉中断?

+2

请参阅下面的[Venkat's answer](http://*.com/a/17429641/1924128)了解简单解决方案。目前接受的答案已过时。 – 2015-10-08 21:32:25

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像显示在屏幕截图:

fake server

remote debug

按主工具栏上的调试按钮。 PhpStorm将开始监听调试器连接。

在命令行运行脚本:

d:\dev\zend\ZendServer\bin\php.exe d:\work\attaches\sample\helps.php 

PhpStorm会命中断点:

breakpoint hit

这是在Windows测试与Zend Server安装,但应该对类似其他系统和xdebug。

如果要直接从PhpStorm进行调试,请使用Php脚本运行/调试配置类型。为此项目配置的PHP实例必须在配置文件中启用Zend DebuggerXdebug

PHP主页和调试器模式可以在File | Settings | PHP中指定。

刚刚通过Zend服务器安装(PHP主页:d:\dev\zend\ZendServer\bin)和Zend Debugger进行验证,对我来说非常合适。

+0

+1非常感谢!使用** PHP脚本**运行/调试配置类型是一个可以接受的解决方法 - 我尝试了它并使其工作。但是,这并不理想,因为我必须为每个要运行第三方外部工具的脚本设置配置。如果我可以使用**外部工具**机制并让PHPStorm捕捉中断,那将会很好,但我想我必须等待! – JoshuaDavid 2011-03-15 20:31:56

+0

我已经使用纯粹的远程配置指南更新了我的回复,因为在Zend知识库文章中引用不正确,所以之前无法使用。 – CrazyCoder 2011-03-15 20:39:38

+0

谢谢! '虚拟'方法非常好,而且在运行外部工具时需要大量通用。 – JoshuaDavid 2011-03-15 20:46:02

检查设置了环境变量SERVER_NAMESERVER_PORT。 PHPStorm需要他们做正确的映射。将它们设置为在bash中导出或在phpscript中手动导入。在这两种情况下,PHPStorm都可以正确找到$_SERVER['SERVER_NAME']$_SERVER['SERVER_PORT']

+0

这整理了我的映射,谢谢!虽然它只在我用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-密钥。

+0

谢谢,它的作品! – 2013-08-19 17:01:58

+1

这应该是被接受的答案!它的作用就像一个魅力 – WonderLand 2013-08-29 16:21:43

+0

在Windows CLI中使用'set XDEBUG_CONFIG =“idekey = PHPSTORM”' – 2014-08-29 12:25:11

  1. 单击运行。
  2. 点击编辑配置...
  3. 点击绿色+
  4. 选择PHP脚本。
  5. 在名称字段中提供名称。
  6. 在“文件”字段中提供脚本的完整路径。
  7. 单击确定。
  8. 选择您刚才在此下拉列表中配置的脚本:

Screenshot of PhpStorm menu bar

  1. 点击运行或调试按钮。你的脚本应该运行,它应该捕获设置的任何断点。
  2. 如果您运行脚本,你可以看到此输出:

    Screenshot of Run widget, typically docked on the bottom of the window

    如果调试脚本,你可以看到此输出:

    Screenshot of Console widget, docked in the Debug widget

开始=>

对我来说(在MacOS上)它的工作方式如下: export XDEBUG_CONFIG="idekey=12345"

+0

也是如此 – Northys 2016-08-29 07:39:46