如何使用netbeans和Xdebug调试PHP

如何使用netbeans和Xdebug调试PHP,php,debugging,netbeans,xdebug,Php,Debugging,Netbeans,Xdebug,我最近尝试使用6.5,因为它在Smashing杂志的IDE评论中获得了很高的评价 我从Notepad++转换的主要原因是,我希望能够调试代码并进行设置 我已经按照供应商和netbeans网站上关于如何安装xdebug的说明进行了操作。但是没有用 这是如何完成的,还有其他人在netbeans中调试过吗? (我的设置是:Windows XP、Wamp server 2.0、PHP 5、Netbeans 6.5.1)hm,对我来说,Netbeans是PHP调试开箱即用的第一个ide xdebug是否以

我最近尝试使用6.5,因为它在Smashing杂志的IDE评论中获得了很高的评价

我从Notepad++转换的主要原因是,我希望能够调试代码并进行设置

我已经按照供应商和netbeans网站上关于如何安装xdebug的说明进行了操作。但是没有用

这是如何完成的,还有其他人在netbeans中调试过吗?


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

hm,对我来说,Netbeans是PHP调试开箱即用的第一个ide

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

xdebug.remote_enable=on
因此,如果未启用此功能,请将其放入php.ini文件中,重新启动apache,调试应该可以正常工作

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


sy

我发现,当安装Mod_rewrite和cURL时,WAMP无法处理Xdebug

这是一个已知错误,每次都会崩溃


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

xdebug在curl或mod_rewrite方面存在问题,这不是一个众所周知的问题。我所知道的唯一问题是Vista上的Xdebug。

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

最终,在重新安装和重置它之后,我使它工作良好

我现在运行一个Netbeans的开发版本,它使用xdebug进行网络调试,所以我们可以在开发服务器上运行它,而且效果很好


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

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

xdebug.idekey="netbeans-xdebug"

注意:在NetBeans中,转到设置并查看xdebug的设置位置。查找该会话ID。在我的例子中,它是netbeans xdebug。

我偶尔会遇到netbeans和xdebug的问题,这是因为存在一个与正在调试的代码无关的监视语句

在这种情况下,调试器将失败,并出现套接字异常

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


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

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

您可以在这里看到:
是葡萄牙语的,但是有一个预配置的虚拟机,带有Ubuntu 10.10、netbeans、php、mysql、xdebug,可以随时使用。看一看

在同一个站点上找到了相同问题的解决方案

好吧,错误是,忘记了

[xdebug]

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

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

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

感谢SysInternals TCPView工具。

转到。这里有一大堆你应该遵循的步骤,可能会对你有所帮助


但很可能您只需要一个新版本的xdebug二进制文件。去看看你需要什么二进制文件,你的问题可能会得到解决。

在Ubuntu下运行netbeans时,我也面临着这个问题,似乎我已经尝试了在internet上找到的所有解决方案,但都是徒劳的

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


…瞧,我又能调试了!如果您在Windows下使用xampp,可能会节省一两天的时间:

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

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

(注意:如果您的xampp版本很旧,则必须从下载,即使您的操作系统是64位,也必须下载32位。例如,您下载的xdebug的名称是php\u xdebug-2.2.1-5.4-vc9.dll。首先将php\u xdebug-2.2.1-5.4-vc9.dll复制到目录C:\xampp\php\ext\,然后您的第二行将是
zend\u扩展名=“C:\xampp\php\ext\php\xdebug-2.2.1-5.4-vc9.dll


在那之后,停止apache并重新启动,就这样。

在浪费了3个小时让xdebug在Windows8和wamp 2.2上工作之后,现在它开始工作了 将[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图标并“重新启动所有服务”

好了,现在是最后一步>>以管理员身份启动NETBEANS
windows8的Holly soul我恨你:浏览下面的文档,使用NetBeans进行远程调试。

在您浪费大量时间试图找出如何让Netbeans调试与mod_rewrite一起工作之前,它不会。请看,它将与命令行和.php文件一起工作,但是.FYI,获得3次否决票的人,又名Derick Rethans,写了xdebug。他不是以英语为母语的人,仅供参考。这是一本非常有用的指南。感谢您花时间来写这篇文章。“xdebug给出了curl或mod_rewrite的问题”-您能更具体一点吗?
xdebug.profiler_enable = 1
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
    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"