25

我使用PHPStorm作为调试 PHP 的主要工具,我非常高兴。到目前为止,我一直在使用 Firefox 运行脚本,PHPStorm 完美地捕捉到了中断。

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

4

7 回答 7

61

使用 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。

于 2013-07-02T15:30:20.517 回答
14

观看/投票相关的 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 DebuggerXdebug 。

PHP home 和调试器模式可以在File | Settings | PHP.

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

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

PhpStorm 菜单栏截图

  1. 单击运行或调试按钮。您的脚本应该运行并且它应该捕获任何设置的断点。

如果你运行脚本,你可以在这里看到输出:

运行小部件的屏幕截图,通常停靠在窗口底部

如果你调试脚本,你可以在这里看到输出:

控制台小部件的屏幕截图,停靠在调试小部件中

于 2015-01-09T22:32:18.883 回答
2

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

于 2013-01-02T14:43:42.497 回答
2

这些建议都不适合我。

如果您处于相同情况,请尝试此命令(检查正确的 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]
于 2018-09-19T10:16:17.570 回答
1

对我来说(在 MacOS 上)它是这样工作的: export XDEBUG_CONFIG="idekey=12345"

于 2016-04-15T06:25:31.490 回答
0

在 MacOS 上,我使用了不同的 bash_profile。我必须先运行以下命令:

source ~/.bash_profile

这将我的 php 从内置的 /usr/bin/php 更改为通过 XAMPP 安装的。PHPStorm 的 XDebug 在上述命令后开始工作。

于 2019-03-16T21:08:57.663 回答