【问题标题】:Xdebug And Netbeans ProblemXdebug 和 Netbeans 问题
【发布时间】:2011-05-30 12:55:10
【问题描述】:

我正在尝试配置 xdebug 以使用 Netbeans 6.9 和 php 5.3
就我而言,我已经正确设置了 xdebug。
我可以从 phpinfo 页面看到 xdebug 扩展。
我已阅读其他帖子并尝试了他们的建议,但无济于事

当我点击调试按钮时,它直接在浏览器中打开页面,我可以在 netbeans 的底部窗格中看到消息“等待连接”

这是我在 php.ini 中的设置

zend_extension = /usr/lib/php5/20090626+lfs/xdebug.so
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey="netbeans-xdebug"

任何帮助将不胜感激

【问题讨论】:

标签: php netbeans


【解决方案1】:

首先,检查它是否真的对您有用,并且您没有注意到。我已经这样做了...确信它不起作用我浪费了大量时间试图让它工作,却发现一切都很好。

查看您的 NetBeans 状态栏。如果您看到“netbeans-xdebug”和“正在运行”,那么它实际上工作得很好。您可能关闭了“在第一行停止”选项,并且您还没有遇到您设置的任何断点(如果有的话)。这就是您看到的页面几乎没有或根本没有调试器实际连接的原因。

如果您看到“Waiting for Connection (netbeans-xdebug)”并且进度条在循环,那么您确实没有连接。打开工具|选项,然后转到 PHP 页面。在常规选项卡上,确保“调试器端口”为 9000,“会话 ID”为“netbeans-xdebug”。您可能希望选中“在第一行停止”。我没有,因为我觉得它有点烦人。我肯定会确保不检查“手表和气球评估”。此选项会导致 NetBeans 和调试器不稳定。如果您需要手表,请将本地变量破解到您需要的 PHP 代码中,当调试器运行时,您将在“变量”选项卡上看到它。另外,确认在项目的运行配置 > 索引文件中指定了文件 (index.php)。

既然您在phpinfo() 中看到了xdebug,那么它的结束就可以了。只需确保所有值看起来都合理,并且在该页面的某处有一些对 cookie“XDEBUG_SESSION=netbeans-xdebug”的引用。 (确保您没有在浏览器上关闭 cookie!)

唯一要检查的另一件事是查看是否正在运行某些防火墙/安全程序,该程序会在本地阻止 TCP/UDP(这将是非常奇怪的,但并非不可能),或者该端口 9000尚未被其他应用程序使用。出于某种原因,我在本地设置中使用了不同的端口号。我不记得改变它,但我确信我唯一的原因是如果我遇到了与其他东西的端口冲突。

最后一件事... 我们一直假设您在同一台计算机上运行 NetBeans 和 Web 服务器。这是一种常见的配置,但不是唯一的。如果您的 Web 服务器位于另一台计算机上,请将 xdebug.remote_host=localhost 中的 localhost 更改为运行 NetBeans 的计算机的 IP 地址。

最后一件事:当循环通过令人沮丧的迭代时,直到您在 phpinfo() 中看到 xdebug 信息,重新启动 apache/php。在那里,仍然在迭代之间重新启动 NetBeans。不管你信不信,重启你的浏览器。

【讨论】:

  • 我已经做了你所有的建议,但没有用。我用谷歌搜索了几天,仍然无法弄清楚。我只是在 NB 状态栏中得到“等待连接”.. /跨度>
  • 尝试重新下载并替换您的 xdebug.so。不要忘记停止并重新启动 Apache(或其他)。另外,为了确定,我假设您的 NetBeans 实例和您的 Web 服务器在同一台计算机上运行是否正确?
  • ok xdebug 仅在我的项目目录中有 index.php 时才有效。如果没有 index.php,它只是说“等待连接”。这是一种常见的行为吗?
  • 这听起来很熟悉。我有几个项目是主要项目的一部分。主项目有 index.php。为了调试子项目,我通常会临时复制主项目的 index.php。然而,我似乎记得,如果 index.php 不存在,NetBeans 甚至不允许我启动调试会话。我似乎记得它告诉我它无法调试,因为它找不到 index.php。
  • 很好解释了一些东西。NB应该提供更友好的错误消息...谢谢你的输入罗伯特
【解决方案2】:

添加 index.php 对我有用。

【讨论】:

  • 您能详细说明一下吗?
【解决方案3】:

我不明白为什么我的一些项目会连接到调试器,而其他项目却不能。然后我意识到那些无法连接的东西是从 index.html 开始的。一旦我将这些文件重命名为 index.php,调试器连接就没有问题了。

【讨论】:

    【解决方案4】:

    对我来说它正在改变

    ;xdebug.remote_enable = 0 (default value in clean XAMPP installation)
    

    xdebug.remote_enable = 1
    

    成功了

    【讨论】:

    • 谢谢,为我解决了这个问题。值得注意的是,这一行转到 php.ini。
    【解决方案5】:

    在阅读以下帖子后,我使用 windows -> 远程 LAMP 服务器配置解决了这个问题,留下链接以防万一有人发现它很方便:

    http://stuporglue.org/setting-up-xdebug-with-netbeans-on-windows-with-a-remote-apache-server/comment-page-1/#comment-6227

    【讨论】:

      【解决方案6】:

      刚刚升级到新的 Ubuntu 14.4,我的 NetBeans Xdebug 停止工作。到目前为止,我已按照上述所有答案无济于事。

      我发现了一条 NetBeans Ubuntu 声明,即 /etc/php5/cli/conf.d/xdebug.ini 文件应该有 xdebug.remote_enable=on。当我检查 /etc/php5/cli/conf.d 目录时,我发现没有 xdebug.ini 文件。但是那里有一个指向 /etc/php5/mods-available/xdebug.ini 的链接。 随后将 xdebug.remote_enable=on 添加到该文件即可解决此问题。

      PS - 这适用于 NetBeans 8.0.1

      【讨论】:

        【解决方案7】:

        当我尝试在 Netbeans 中调试由 PHP 后端驱动的 Yeoman WebApps 时,状态一直显示“等待连接”。可能是因为 index.html 根本与 php 无关。只有当我触发了需要 PHP 处理的 ajax 时,与 xdebug 的连接才会立即连接并像往常一样调试。希望这能给某人另一个视角,因为我偶然发现“认为”存在问题并试图修复 ini。

        【讨论】:

          【解决方案8】:

          一个替代方案是 Dephpugger 项目。就像 python 中的 ipdb 或 Ruby 中的 byebug。 https://github.com/tacnoman/dephpugger

          非常容易使用。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-05-17
            • 1970-01-01
            • 2012-09-03
            • 1970-01-01
            • 1970-01-01
            • 2017-01-28
            • 2012-10-03
            • 2012-06-03
            相关资源
            最近更新 更多