Xdebug和Netbeans问题

时间:2010-12-24 22:29:07

标签: php netbeans

我试图配置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"

任何帮助将不胜感激

8 个答案:

答案 0 :(得分:15)

首先,检查它实际上是否适合您,您没有注意到。我已经做到了这一点......确信它不起作用我浪费了一大块时间试图让它工作,只是发现一切都好。

查看NetBeans状态栏。如果你看到“netbeans-xdebug”和“running”那么它实际上工作正常。您可能已关闭“在第一行停止”选项,但您没有点击您设置的任何断点(如果有)。这就是你看到页面很少或根本没有指示调试器实际连接的原因。

如果你看到“等待连接(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。不管你信不信,重启你的浏览器。

答案 1 :(得分:3)

对我而言,它正在改变

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

xdebug.remote_enable = 1

做了这个伎俩

答案 2 :(得分:1)

添加index.php对我有用。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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

我找到了一个N​​etBeans 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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

另一种选择是Dephpugger项目。就像python中的ipdb或Ruby中的byebug一样。 https://github.com/tacnoman/dephpugger

非常容易使用。