用netbeans和xdebug调试php的配置

时间:2022-11-29 15:23:41

xdebug的chrome、firefox插件

chrome:Xdebug helper

firefox:easy Xdebug

-------------------------------------------------------

小技巧..让chrome支持xdebug一直可以调试.

1.先随便建立一次调试.然后打个断点.按下F5.完成一次调试.这个时候红色按钮不该是灰色的.这就保证了浏览器和netbeans建立了连接

2.再切换到chrome.随意打开一个页面.就都可以进行debug了..避免了多次调试更改url和参数.

----------------------------------------------

之前用过一段时间在apache,netbeans下通过xdebug调试。感觉不错,最近事情不多想从新配置下,是基于最新版本的php5.4做的,后来参考了下xdebug的官网说明完成的。官网地址:http://wiki.netbeans.org/HowToConfigureXDebug#How_to_configure_xdebug_with_WAMP

具体步骤如下: 1、去http://www.xdebug.org/download.php下载相应的php_xdebug.dll,这个要根据你自己的php版本哦。

然后把下载的文件放到php的ext目录下,其实放在任何你想要的目录都可以,主要是在下面说的php.ini里指定好路径。

2、修改php.ini

zend_extension=D:/php/ext/php_xdebug-2.2.1-5.4-vc9.dll

xdebug.remote_enable=on

xdebug.remote_handler=dbgp

xdebug.remote_host=localhost

xdebug.remote_port=9000

其中 zend_extension=D:/php/ext/php_xdebug-2.2.1-5.4-vc9.dll 是php5.3以及以上版面的写法,

如果是php5.2以及以下版本的是 zend_extension_ts=D:/php/ext/php_xdebug-2.2.1-5.4-vc9.dll。

下面是几个不必须的参数。

xdebug.auto_trace=on

xdebug.collect_params=on

xdebug.collect_return=on

xdebug.trace_output_dir="D:/php/debuginfo"

xdebug.profiler_enable=on

xdebug.profiler_output_dir="D:/php/debuginfo"

trace_output_dir 对于的是类似trace.4046332594.xt的文件,

profiler_output_dir对应得是类似cachegrind.out.10360 这样的文件

最好重启下Apache服务

然后可以用个phpinfo()函数测试是否成功了。 用netbeans和xdebug调试php的配置

下面开始设置netbeans,

工具->选项->常规   选择好web浏览器 工具->选项->php->调试    查看高度的端口是否正确 下一步就可以打开你要调试的文件开始了,设置好断点(其实在调试过程中你还可以设置或修改断点)。 调试过程中的情况大概如下图,你可以看执行过程中各个变量的情况。

用netbeans和xdebug调试php的配置

要注意的是,xdebug.trace_output_dir="d:\xdebug" 这个文件夹要手动创建。

----

zend_extension=D:\wamp\bin\php\php5.3.3\ext\php_xdebug-2.1.0-5.3-vc6.dll

[Xdebug]

;是否开启自动跟踪
xdebug.auto_trace= On
;是否开启异常跟踪
xdebug.show_exception_trace= On
;是否开启远程调试自动启动
xdebug.remote_autostart= On
;是否开启远程调试
xdebug.remote_enable= On
;允许调试的客户端IP
xdebug.remote_host=192.168.1.211
;远程调试的端口(默认9000)
xdebug.remote_port=9000
;调试插件dbgp
xdebug.remote_handler=dbgp
;是否收集变量
xdebug.collect_vars= On
;是否收集返回值
xdebug.collect_return= On
;是否收集参数
xdebug.collect_params= On
;跟踪输出路径
xdebug.trace_output_dir="d:\xdebug"
;是否开启调试内容
xdebug.profiler_enable=On
;调试输出路径
xdebug.profiler_output_dir="d:\xdebug"

----

然后就可以测试了。

Netbeans上要注意几点:

1. 默认的浏览器最好选择一个

2. PHP的选项里,编译路径是空的,最好选上。

3. 要选择监视变量的数量,否则这个功能默认是关闭的。

4. 配置都保存了之后,还是连接失败的话,就重启一下netbeans吧。很多人都知道,该了PHP.INI要重启服务器。但是没想过netbeans的有些配置改了之后,也要重启才能生效……ORZ……我就是没重启浪费了好多时间……

路径映射、调试器代理以及在定制 URL 上启动调试会话

可以调试脚本和 Web 页,还可以在本地或远程调试 Web 页。遗憾的是,对于远程调试,在远程服务器上调试的 PHP 文件与在本地计算机上运行的 NetBeans IDE 中打开的文件并不相同。因此,NetBeans 中的调试器支持必须能够将服务器路径映射到本地路径。然而,由于存在诸多复杂因素,无法针对各种情况自动解决路径映射问题。因此,从 NetBeans 6.7 开始,您可以通过项目设置针对各个运行配置手动定义路径映射。此外,还可以指定代理服务器(如果有),以及在其上启动调试会话的 URL。如果未指定此 URL,则将从索引文件开始执行调试。

设置路径映射并启用定制调试 URL:

  1. 在 "Projects"(项目)窗口中右键单击项目节点,然后从上下文菜单中打开项目的 "Properties"(属性)。
  2. 在 "Project Properties"(项目属性)对话框中,转至 "Run Configuration"(运行配置)类别。
  3. 单击 "Advanced"(高级)按钮。"Advanced Web Configuration"(高级 Web 配置)对话框打开。
  4. 添加要进行路径映射的服务器路径和项目路径。
  5. 在 "Debug URL"(调试 URL)下,选中以下一个选项(不要将默认值保留为选中状态): 
    • "Ask Every Time"(每次都询问):让 IDE 提示您在启动调试会话时输入 URL。
    • "Do Not Open Web Browser"(不打开 Web 浏览器):需要您手动打开浏览器并输入 URL(您需要 GET/POST XDEBUG_SESSION_START 变量)。
  6. 使用代理服务器进行调试时,请在 "Debugger Proxy"(调试器代理)类别中输入该服务器的主机名和端口。

有关详细信息,请参见 "NetBeans for PHP"(NetBeans PHP) 博客中的 Path Mapping in PHP Debugger(使用 PHP 调试器进行路径映射)的帖子。