如何使用netbeans和Xdebug调试PHP

时间:2009-03-28 16:46:12

标签: php debugging netbeans xdebug

我最近在Smashing杂志的IDE评论中得到了如此高的评价后,试图继续使用Netbeans 6.5。 http://www.smashingmagazine.com/2009/02/11/the-big-php-ides-test-why-use-oneand-which-to-choose/

我从Notepad ++切换的主要原因是我希望能够调试我的代码并通过它进行设置。

我已按照有关如何从供应商http://xdebug.org/和netbeans网站安装xdebug的说明进行操作。 http://www.netbeans.org/kb/docs/php/debugging.html#gettingReady但无济于事。

如何完成,还有其他人在netbeans中进行调试吗?

(我的设置是:Windows XP,Wamp server 2.0,PHP 5,Netbeans 6.5.1)

16 个答案:

答案 0 :(得分:10)

在php.ini中添加这一行非常重要:

xdebug.idekey="netbeans-xdebug"

注意:在NetBeans中,转到“设置”并查看xdebug内容的设置位置。查找该会话ID。就我而言,它是netbeans-xdebug。

答案 1 :(得分:6)

嗯,对我来说,netbeans是php调试开箱即用的第一个理念。

xdebug是否在phpinfo中显示?如果是,它应该使用默认设置。唯一需要的是:

xdebug.remote_enable=on

所以如果没有启用它,请将它放在php.ini文件中,重新启动apache,调试应该可以正常工作。

如果没有,您将不得不为我提供更多信息来帮助您。

SY

答案 2 :(得分:5)

我发现WAMP在安装Mod_rewrite和cURL时无法应对Xdebug。

已知错误,每次都会崩溃。

http://phphints.wordpress.com/2008/10/24/wampserver-phpini-settings-for-use-with-xdebugdll-pear-and-silverstripe-cms-framework/

不幸的是,我也在使用这两个库。

答案 3 :(得分:3)

xdebug提出curl或mod_rewrite问题不是一个已知的问题。我所知道的唯一问题是Vista上的Xdebug。

答案 4 :(得分:2)

你可以在这里看到: http://ruilima.com/2010/11/ambiente_de_desenvolvimento_php_netbeans_xdebug/ 是葡萄牙语,但有一个预先配置的虚拟机与Ubuntu 10.10,netbeans,php,mysql,xdebug,随时可用。看看

答案 5 :(得分:1)

我发现在Netbeans中你需要将项目中的webroot路径设置为app / webroot。如果你这样做,调试工作完美无瑕。

答案 6 :(得分:1)

如果您在Windows下使用xampp:

您只需打开 php.ini 文件并更改这两行

即可
;xdebug.profiler_enable = 0
;zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

xdebug.profiler_enable = 1
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

(注意:如果你的xampp版本是旧的,你必须从http://xdebug.org/download.php下载它,下载32位甚至你的操作系统是64位。例如你下载的xdebug的名字是 php_xdebug-2.2.1 -5.4-vc9.dll 。首先将php_xdebug-2.2.1-5.4-vc9.dll复制到目录C:\ xampp \ php \ ext \,然后你的第二行将是zend_extension = "C:\xampp\php\ext\php_xdebug-2.2.1-5.4-vc9.dll

之后停止apache并重新开始,就是这样。

答案 7 :(得分:0)

如果您遇到Apache在运行调试器时决定崩溃的问题(这就是我所拥有的并且非常烦人)。我很确定我重新安装了xampp并重新设置了xdebug。我认为问题是在php.ini中设置了很奇怪的zend-debugger而我没有修改正确的php.ini。

最终重新安装并重置后,我得到了正常的工作。

我现在运行了一个开发版的Netbeans,它已经与xdebug进行了网络调试,所以我们将它从我们的开发服务器上运行,它可以很好地进行处理。

祝你好运,关于如何使用net beans设置xdebug,没有特别好的文档。

答案 8 :(得分:0)

我偶尔会遇到NetBeans和XDebug的问题,这些问题一直存在于与正在调试的代码无关的Watch语句中。

在这种情况下,调试器失败并出现Socket异常。

如果发现这导致您的问题,请移除所有手表。一般来说,虽然我发现XDebug非常方便!

但我确实意识到这可能与你在这里遇到的问题无关,但值得注意。

答案 9 :(得分:0)

在同一网站PHP Netbeans: xdebug stops on every include() or require()

上找到了相同问题的解决方案

答案 10 :(得分:0)

错误的是,忘了

[xdebug]

作为php-ini中的节头。当然,在另一部分开始之前“停放”你的东西(例如[Date]或[iconv]),否则你会意外地把它们放在错误的部分。 (在php.ini的评论djungle中,这很容易发生。)

答案 11 :(得分:0)

在我的情况下,这是一个在我的机器上运行的进程(Windows 7),它使用的端口9000已经被称为aeagent.exe

我将php.ini设置更改为“xdebug.remote_port = 9001”,在netbeans中进行了相应的更改,然后重新启动了Apache。现在它有效。

感谢SysInternals TCPView工具。

答案 12 :(得分:0)

转到http://wiki.netbeans.org/HowToConfigureXDebug。您应该遵循一系列步骤,这可能对您有帮助。

但很可能你只需要一个新版本的xdebug-binary。转到http://xdebug.org/wizard.php,找出您需要的二进制文件,并解决您的问题。

答案 13 :(得分:0)

在Ubuntu下运行netbeans时,我也遇到了这个问题,似乎我已经尝试过在互联网上找到的所有解决方案,但都是徒劳的。

最终帮助的唯一事情是使用SUDO命令运行netbeans!看起来普通用户没有权限侦听端口9000(或任何其他)。

sudo netbeans &

...瞧,我可以再次调试!也许它会为你节省一两天

答案 14 :(得分:0)

现在它的工作是浪费了3个小时让xdebug在带有wamp 2.2的Windows8上运行 用以下

替换[xdebug]下面的原始行
    zend_extension = "c:/wamp/bin/php/php5.3.13/zend_ext/php_xdebug-2.2.0-5.3-vc9.dll"
    ;make sure path of your own php_xdebug, dll version may vary.

    [xdebug]

    xdebug.remote_enable = on
    xdebug.remote_handler=dbgp
    xdebug.remote_host=localhost
    xdebug.remote_port=9000
;recheck your port number in netbeans [Tools=>options=>php=>debugging there it is: debugging port]
    xdebug.profiler_enable = on
    xdebug.profiler_enable_trigger = on
    xdebug.profiler_output_name = cachegrind.out.%t.%p
    xdebug.profiler_output_dir = "c:/wamp/tmp"

现在点击任务栏中的wamp图标并“重启所有服务”

嗯..现在最后一步>> START NETBEANS作为管理员 Windows8的冬青灵魂我讨厌你:<

答案 15 :(得分:0)