在PHPStorm中调试PHP命令行脚本

时间:2011-03-15 17:02:30

标签: php command-line debugging phpstorm

我使用PHPStorm作为调试PHP的主要工具,我非常高兴。到目前为止,我一直在使用Firefox来运行脚本,PHPStorm可以完美地打破它。

现在我遇到的情况是我通过命令行(而不是浏览器)运行PHP脚本,并且想知道是否有办法设置PHPStorm以便在通过命令行运行PHP脚本时捕获中断?

7 个答案:

答案 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,如屏幕截图所示:

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 Debugger Xdebug

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

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

答案 2 :(得分:5)

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

答案 3 :(得分:2)

检查环境变量SERVER_NAMESERVER_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开始工作。