用 xdebug 和 netbeans 调试 php-cli 脚本?

我已经设法从 IDE 本身启动了 php-cli 脚本调试会话,但是我需要从 shell/命令行启动调试会话。这些是相当复杂的维护 PHP 脚本,需要很多输入参数,因此从 Netbeans 内部输入参数有点麻烦。

我以前用 Zend 工作室: abc0做过,但现在我需要它与 Netbeans 一起工作。

先谢谢你。

79986 次浏览

xdebug.remote_autostart=On添加到 PHP.ini 文件或将 -dxdebug.remote_autostart=On作为参数添加到 PHP 二进制调用(php -d... script.php)。

参见 http://xdebug.org/docs/remote

我在 Ubuntu/Netbeans 上做这个工作的方法是:

  • 将 xdebug 配置行从/etc/php5/apache2/php.ini 文件复制到/etc/php5/cli/php.ini
  • 设置一个带有调试会话名称的环境变量(当开始调试时,可以从 netbeans 启动的页面的 url 中的查询字符串获得这个名称) ,因此命令是: export XDEBUG_CONFIG="idekey=netbeans-xdebug"

然后只需在 netbeans 中启动调试并在命令行中执行 php myscript.php即可。

注: 如果要使用 netbeans 进行远程调试,则需要对从命令行运行的文件使用 Debug File,而不是普通的 Debug。

我将把所有放在一起,以下是为我工作。

file:
/etc/php5/cli/php.ini


zend_extension="/usr/lib/php5/20121212/xdebug.so" -> xdebug bin path
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_handler="dbgp"
xdebug.remote_mode="req"
xdebug.remote_port=9000 -> same port configured in netbeans debugging tab
xdebug.idekey="netbeans-xdebug" -> same ide configured in netbeans debuggin tab
xdebug.remote_autostart=1

然后,没有任何其他参数

脚本

我也有同样的问题,我的解决办法是这样的:

在 Netbeans > project window > 右键单击 php project > properties > Run configuration。 创建新配置。

填写正确的值:

  • 以“脚本”的形式运行
  • 设置 php 解释程序
  • 在我的案例中,更改索引文件是“ cron/index.php”。

如果不想为 IDE 配置 xDebug,可以使用 Dephpugger 项目(我讨厌配置)。

Https://github.com/tacnoman/dephpugger

您可以在终端中运行调试器,比如 Python 的 ipdb 和 Ruby 的 byebug。

我也有同样的问题,我的解决办法是:

  1. 环境: Windows 下的 Netbeans 8.2(apache + php)
  2. 假设您已经将 PHP 和 NetBeans 配置为调试 使用 Xdebug 的代码(http://wiki.netbeans.org/HowToConfigureXDebug#Notes_on_Windows_Configuration)
  3. 在 netbeans 上创建新配置(“项目属性”> “运行配置”> “新...”
  4. 在新的配置设置不要打开网页浏览器(“高级”> “不要打开网页浏览器”)
  5. 设置激活新创建的配置(在工具栏中下拉)
  6. 为调试设置断点
  7. 打开调试(CTRL + F5)
  8. 打开终端窗口(“工具”> “在终端中打开”)
  9. 输入终端: $export XDEBUG _ CONFIG = “ idekey = netbeans-XDEBUG”(值“ netbeans-XDEBUG”必须与“ Tools”> “ Options”> “ Debug”> “ Session ID”一致)
  10. 输入终端: $php.exe-f“ C: Apache24 htdocs www. SiteName ScriptName.php”——“ Arg1 = x & Arg2 = y”
  11. 跟着调试..。

确保还设置了 DBGP _ IDEKEY 值,因为通常它不是 好主意。 例如在 Linux 上:

export DBGP_IDEKEY="netbeans-xdebug"
export XDEBUG_CONFIG="netbeans-xdebug=netbeans-xdebug"