Xdebug + XAMPP + Netbeans = 失败。无法让调试器在 Netbeans 中工作

Posted

技术标签:

【中文标题】Xdebug + XAMPP + Netbeans = 失败。无法让调试器在 Netbeans 中工作【英文标题】:Xdebug + XAMPP + Netbeans = fail. Cannot get debugger to work in Netbeans 【发布时间】:2012-04-28 22:02:29 【问题描述】:

我已阅读有关此主题的其他问题。列出的解决方案无效。

已安装:

XAMPP 1.7.7

Netbeans 7.1.1

XDebug 2.1.4

phpinfo() 显示 Xdebug 安装了所有正确的参数:

zend_extension = C:\xampp\php\ext\php_xdebug-2.1.4-5.3-vc9.dll

xdebug.remote_enable = 开启

xdebug.remote_handler = "dbgp"

xdebug.remote_host = "本地主机"

xdebug.remote_port = 9000

但是,当我启动 Netbeans 调试会话时,它会循环一段时间,但没有任何效果。当我停止它时,我收到信息框,通知我“在 nn 秒内未检测到来自 xdebug 的连接。原因可能是 xdebug 未安装或未正确配置。(他们的重点)。

据我所知,我正确配置了所有内容,重新启动了 Apache 服务器,但它仍然无法正常工作。我完全不知道如何进行。任何帮助表示赞赏。

【问题讨论】:

创建调试日志(参见xdebug.org/docs/all_settings#remote_log)并查看xdebug 是否尝试连接... 尝试将此添加到 php.ini:xdebug.remote_log = "c:/xampp/tmp/bp-edi.txt"。重新启动apache,启动调试器,运行几秒钟,停止它。没有日志文件。 :( 已通过他们的测试程序验证 Xdebug 已正确安装。根据另一个论坛帖子将日志文件位置更改为 xdebug.remote_log = "c:\xampp\apache\logs\xdebug_remote"。仍然没有输出。 另一个附录:我运行了 php -m 并收到了这个响应:[Zend Modules] Xdebug。所以我知道 php 已经加载了模块。我还了解到,这个问题被许多人称为可怕的“等待连接”幽灵,它不仅困扰着我。 【参考方案1】:

你能相信吗!?在花了几个小时研究这个问题之后,我终于找到了我只能归类为错误的原因。现在,我如何报告错误?那是下一个问题。

总结如下:

创建 PHP 项目并将 NetBeans 项目站点根目录设置为子文件夹。 (为了不为任何新任务注册 Apache 新测试站点,我 将每个新任务放入我的本地测试域下的子文件夹中,例如 http://test.my/project3/)。 NetBeans 不会启动调试会话 在这种情况下自动。您将看到“等待连接” 来自下图中的消息。不用担心。保持原样。去 你的浏览器。我使用 FireFox 4。并调用您要调试的脚本 带有附加参数,例如 http://test.my/project3/index.php?XDEBUG_SESSION_START=netbeans-xdebug

当您返回 NetBeans 时,您将看到与 xdebug 的连接 成立成功。要手动停止 XDebug 会话,请调用任何 具有此参数的同一子目录中的脚本 ?XDEBUG_SESSION_STOP_NO_EXEC=netbeans-xdebug

完整的解决方案可以在我最新的英雄博客NetBeans 7.0 for PHP Waiting for Connection to XDebug找到

编辑:知道我刚刚发现了什么吗?我删除了 index.php 作为我的运行配置的索引文件。无需手动插入 url 的 xdebug 部分即可发挥魅力。

【讨论】:

【参考方案2】:

我刚刚在使用 Netbeans 8 时遇到了这个问题,虽然你的回答解决了我的问题,但我想我找到了可以永远解决它的解决方案。

项目属性 => 运行配置 => 高级 ... 确保选择了以下条目 调试 URL:'默认:您的 URL'

我的设置为“不打开网络浏览器”..... 现在它可以像几个月前一样工作了:)

【讨论】:

【参考方案3】:

我是一名 .Net 程序员,对 PHP 非常陌生。最近我试图在我的机器(Windows)上托管一个开源 PHP 应用程序。经过 5-6 天的奋斗,我将列出对我有用的步骤。

我卸载了以前安装的所有 XAMPP 和 NetBeans,并继续进行全新安装。

这可能不是适合所有人的解决方案,但它对我有用,我希望它对某人有所帮助。

安装 XAMPP

为 PHP 安装 netbeans。

打开 IIS 并停止它。它默认在 80 端口上运行。(我在 80 端口上运行 XAMPP,即默认,在其他端口上运行可能需要额外的配置设置)

打开 XAMPP 控制面板并启动 Apache。如果 80 端口是空闲的,应该不会出现问题。

在浏览器中打开 localhost 应该会显示 XAMPP 主页。

打开左侧窗格中的 phpinfo() 链接并复制页面上的所有内容。转到:http://xdebug.org/wizard.php 并将所有内容粘贴到 TextBox 中,然后单击分析我的 phpinfo 输出。它将显示适合您配置的 Xdebug 文件。

下载给定的 Xdebug dll 并复制到 C:\xampp\php\ext (Xampp 是默认的 Xampp 安装目录)

进入XAMPP控制面板,点击Apache前面的Config按钮,选择php.in,

查找相似或完全相似的行,

;zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

(分号表示已注释)

去掉分号,将路径替换为刚才复制的dll路径,如下:

zend_extension = "C:\xampp\php\ext\php_xdebug-2.3.2-5.4-vc9.dll"

类似地查找行 ;xdebug.remote_enable = 0 ;xdebug.remote_handler = "dbgp"

去掉两行前面的分号,使 remote_enable = 1

xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp"

重启 Apache 服务器。

将您的网站代码复制到 C:/XAMPP/htdocs/(your_website)/ 下,这意味着您的 index.php 应位于 C:/XAMPP/htdocs/(your_website)/index.php

打开 Netbeans 选择 New project -> PHP -> PHP project from existing source 并选择刚刚复制到 htdocs 文件夹中的文件夹。将其设置为在本地 Web 服务器上运行。

在 index.php 的第一行设置断点并调试。

就是这样。

在各种不同的帖子中建议了其他设置,但上述步骤对我来说非常有效。

【讨论】:

【参考方案4】:

我认为你可能缺少的是

xdebug.idekey=netbeans-xdebug

这是我在 php.ini 中使用的设置

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1    # Not safe for production servers
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
xdebug.remote_autostart=false

【讨论】:

【参考方案5】:

    通过编辑阅读 XAMPP 1.7.7 和 Netbeans 7.1 的安装 建议的 php.ini 文件: http://netbeans.org/kb/docs/php/configure-php-environment-windows.html

    在本地 XAMPP 目录中创建您的 PHP 项目,c:\xammp\htdocs\*yourproject*

    调试index.php,你会看到你的浏览器会启动附加参数: http://*yourproject*/index.php?XDEBUG_SESSION_START=netbeans-xdebug

    转到您的 Netbeans,您的调试器将启动。

【讨论】:

我已经在一个月前解决了这个问题。您的回答没有增加任何新内容。

以上是关于Xdebug + XAMPP + Netbeans = 失败。无法让调试器在 Netbeans 中工作的主要内容,如果未能解决你的问题,请参考以下文章

xampp 中的 xdebug 在 netbeans 上不起作用

使用 Netbeans 8.0 和 xampp 1.8.3 进行 Xdebug

netbeans 调试 php

netbeans 显示“等待连接 (netbeans-xdebug)”

Xdebug 和 Netbeans 没有相互通信

无法通过 netbeans 和 xdebug 调试内部页面