使用NetBeans + Xdebug调试PHP程序的方法_php技巧

按照网络上的资料配置好调试环境后实际试用了发现功能较为简陋,单文件调试还可,如果是跨文件调试项目就不那么舒服了,试用过程中因为DBGP插件也存在许多缺陷,烦恼不断,经常性地stack overflow,很是遗憾。后来想想Np++只是Editor,不要对它强求过多,插件的版本也比较低,存在许多BUG也是可以理解的,等它慢慢完善再说吧,开源社区的力量可是很强大的,^^。
昨晚在坛里某位同志的博文里再次见到了NetBeans这个熟悉的字眼(之前选开发环境的时候因为NB非常强大,功能设置很人性化,界面非常友好,又有非常强的自动完成功能,都差不多就要定它了,可是因为当时不懂有xdebug,所以没搞懂怎么调试,就继续用着EP Ctrl+B“调试”程序了),就用加上“xdebug”google了一下发现NB调试功能就是通过其实现的,而且功能齐全,评价不错,哈哈,大大的惊喜,因为太晚了怕影响舍友休息,就决定次日来搞掂它。
……
  今天外出溜达回来后,把开发环境折腾了一番,现将配置过程整理如下:

[我的环境]

OS:Vista Business SP1 en_US
PHP:5.2.8
Apache:2.2.11
NetBeans:6.5.1 PHP
        http://www.netbeans.org/downloads/start.html?platform=windows〈=zh_CN&option=php&version=6.5.1
Xdebug:2.0.4-5.2.8
        http://www.xdebug.org/files/php_xdebug-2.0.4-5.2.8.dll

[安装Xdebug]

1、将php_xdebug-2.0.4-5.2.8.dll解压至php安装目录下的ext文件夹。
本机为:D:\Wamp\php\ext
2、修改php.ini,在末位添加如下内容:
[php]
zend_extension_ts=" D:\Wamp\php\ext\php_xdebug-2.0.2-5.2.5.dll"
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
[/php]
注:zend_extension_ts 的值以你实际安装位置为准;xdebug 会与zend_optimizer相冲突,请注释/删除掉php.ini内的与zend_optimizer相关的语句;xdebug.remote_port的值要与NB的工具->选项->调试器端口 所填写内容一致,缺省为9000
3、在Vista环境下,通过apache模块加载php的方式在载入xdebug后执行php脚本apache会崩溃,如果要正常使用xdebug调试PHP程序的话,需要将PHP的运行方式更改为CGI,请在httpd.conf添加如下内容:
[php]
#LoadModule php5_module D:/Wamp/php/php5apache2_2.dll
#PHPIniDir "D:/Wamp/php/"
ScriptAlias /php/ "D:/Wamp/php/"
<Directory D:/Wamp/php/>
Order allow,deny
Allow from all
</Directory>

#AddType application/x-httpd-php .php
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

注:注释掉的是以模块方式加载PHP的配置语句
[/php]

[开始调试]

1、新建并打开项目
2、打开需要调试的文件并设置断点。
3、执行顶部菜单内的 调试->调试”xxx.php”,在弹出的对话框中选择“服务器端PHP”。点击确定后,NB会自动使用你的默认浏览器打开你要调试的文件,如:http://localhost/Comsenz/UCenter_Home/index.php?XDEBUG_SESSION_START=netbeans-xdebug。此时,你会发现浏览器的请求一直未返回,而且NB右下角显示“netbeans-xdebug正在运行”,你就可以按F7正常调试程序了。
若未设置断点,执行调试的时候程序将自动在当前文件的第一行暂停执行。若不希望自动暂停执行,请取消勾选工具->选项->PHP->在第一行停止。
4、表单处理调试可以执行 调试->调试项目,后续操作类似,只不过如果你执行到你设置断点的脚本时,NB会自动中断在断点处,等待你调试哈!
5、详细的请参照NB官方调试指南http://www.netbeans.org/kb/docs/php/debugging_zh_CN.html

[参考站点]
http://www.netbeans.org/downloads/index.html (NetBeans下载)
http://www.xdebug.org/download.php (Xdebug下载)

原文:http://www.zvv.cn/blog/show-101-1.html

[ 本帖最后由 zwws 于 2009-3-29 02:55 编辑 ]


1、打开项目,设置断点.jpg


2、执行调试.jpg


3、调试方式.jpg


4、单步调试.jpg


5、项目调试(跨页).jpg

小Z写东西总是那么详细。顶上!
PS: 楼主的头像很雷

1.“xdebug 会与zend_optimizer相冲突,请注释/删除掉php.ini内的与zend_optimizer相关的语句”
    不知道哪些语句是与zend_optimizer相关的语句 楼主能否详细的给出
2.我的是win操作系统
              PHP 5.2.9
              Apache 2.11
              MYSQL 5.1

不知道是否和楼主配置的方式是一样的
3.我也很喜欢NetBeans的开发模式 但是xdebug总是调试不好 按照网上说的做了还多次
仍旧不行  前期最终选择了放弃  看了楼主发表的具体配置方法 很是感激 不过还有上面
两个疑问  谨希望能够得到楼主的最快最详细的回复答案  非常感谢

sejie10011 (2009-3-31 11:07:11)

楼主写得那么详细。顶上!

zwws (2009-3-31 12:22:52)

1、呵呵,解决问题的方法很重要的,如果你知道zend_optimizer是如何安装的,那不就解决问题了么?
我用“zend_optimizer php.ini”在google搜到了这篇文章
http://ideacm.com.cn/read.php?12
所以你只要根据文章在本地的php.ini里找到文章内提到的相关语句注释掉不就好了嘛,其实就是"zend_Optimizer."打头的语句。当然,前提是你安装了zend_optimizer.

2、xdebug 2.0.4 支持 PHP 5.2.9的。

zwws (2009-3-31 12:24:14)

豆瓣淘滴。

niohe (2009-3-31 22:43:54)

多谢LZ指教!!

iminto (2009-4-02 19:58:07)

支持楼主

大碗茶 (2009-4-03 17:02:32)

zend optimizer和 xdebug是可以共存的

qgymje (2009-8-27 11:56:53)

我想问一下我的这个情况
http://bbs.phpchina.com/thread-149075-1-1.html
调试后步入步出不能用

zhenjiangdeni (2010-6-23 14:42:03)

楼主,我都按照你说的配置了,为什么,ide又下角老是显示   正在等待连接(netbeans-xdebug).没有办法调试

luzhou (2010-6-25 19:29:22)

不错啊!

luzhou (2010-6-25 19:31:05)

http://zh-cn.netbeans.org/kb/docs/php/debugging.html

gguoyu (2010-6-25 20:58:24)

回复 12# zhenjiangdeni

时间: 2024-10-12 16:22:38

使用NetBeans + Xdebug调试PHP程序的方法_php技巧的相关文章

使用XDebug调试及单元测试覆盖率分析_php技巧

今天我就就自己对XDebug使用的一些体验做一小段分享.XDebug也是因为需要是用来生成覆盖率分析文件才安装的,刚接触不久,平时用的也不是很频繁,但是这个的确是一个好工具,如果想要依赖它来分析程序的性能还是需要自己亲手去试试.具体它有多好,请听我一一道来. <?XML:NAMESPACE PREFIX = O />   <!--[if !supportLists]-->一.<!--[endif]-->安装篇(XDebug 和PHPUnit) A:安装XDebug: X

netbeans中调试php程序,执行到实例化smarty时程序提示“套接字异常错误”

问题描述 netbeans中调试php程序,执行到实例化smarty时程序提示"套接字异常错误" require './Smarty/libs/Smarty.class.php'; $smarty = new Smarty(); $smarty->template_dir="./templates"; $smarty->compile_dir="./compile"; 在netbeans中调试php程序,调试运行到new Smarty

用PHP实现多服务器共享SESSION数据的方法_php技巧

PHP 实现多服务器共享 SESSION 数据 /google 的广告条--> 一.问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名.密码在整个网站的各个模块中都是可以登录使用的.各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接口对用户数据进行访问即可.但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块时,仍然需要重新登录,这

xdebug调试PHP程序的学习笔记

xdebug 安装步骤 xdebug是php的一个module,需要编译安装,我用lnmp安装的php,php被默认安装到/usr/local/php,然后做一个硬链接到/usr/bin 先编译xdebug  代码如下 复制代码 wget http://www.xdebug.org/files/xdebug-2.2.3.tgz tar xzf xdebug-2.2.3.tgz cd xdebug-2.2.3 /usr/bin/phpize ./configure --with-php-confi

php安装xdebug调试PHP程序的很慢问题解决办法

xdebug是一个不错的调试php的组件,但是,如果你不好好的配置它,就会遇到各式各样的问题: A:访问超慢响应 B:访问超快响应但是是空白页. 问题A解决的方法很多,总归还有解决办法:问题B我估计是线程问题,也许可以通过调试php.ini的配置搞定,也许不是,很难讲清楚,线程的问题可能要跟xdebug的版本扯上关系. 解决方式 PHP.ini 找到memory_limit参数,增大! 换一个浏览器!我之前一直用Google Chrome调试程序,之后就开始变慢下来,直到每个页面变成6秒才加载完

用Xdebug调试PHP程序

什么是Xdebug? Xdebug是一个PHP的扩展用于调试PHP程序,用于调试PHP,可以提供很多有用的调试信息. 1.Xdebug的安装 首先假设我们的开发平台是windows XP上面已经安装好了Apache.PHP,PHP安装在C:\php目录. 先到Xdebug的官方网站http://xdebug.org/去下载对应你PHP版本的Xdebug的DLL文件,下载下来放在PHP的ext目录(C:\php5\ext),你可以按照其他扩展的命名方式,去掉后面Xdebug的版本编号直接改成php

50个PHP程序性能优化的方法_php技巧

1. 用单引号代替双引号来包含字符串,这样做会更快一些.因为 PHP 会在双引号包围的 字符串中搜寻变量,单引号则不会,注意:只有 echo 能这么做,它是一种可以把多个字符 串当作参数的"函数"(译注:PHP 手册中说 echo 是语言结构,不是真正的函数,故把函数 加上了双引号). 2.如果能将类的方法定义成 static,就尽量定义成 static,它的速度会提升将近 4 倍. 3.$row['id'] 的速度是$row[id]的 7 倍. 4.echo 比 print 快,并且

javascript实现在网页中运行本地程序的方法_javascript技巧

本文实例讲述了javascript实现在网页中运行本地程序的方法.分享给大家供大家参考,具体如下: <input onclick="exec('notepad.exe')" value="执行noteppad.exe" type="button"> <input onclick="exec('cmd.exe')" value="执行cmd.exe" type="button&qu

JavaScript调用客户端Java程序的方法_javascript技巧

本文实例讲述了JavaScript调用客户端Java程序的方法.分享给大家供大家参考.具体如下: 一般说来,JavaScript是没有权限调用客户端可执行程序的.但有时有些特殊需要,又不得不调用.例如有时涉及客户端文件的操作此时,当然我们可以用 FileSystemObject对象来完成.又例如我们前些时做的项目中,需求是点击页面一个链接不弹出IE的那个文件下载的对话框 (有三个选项:打开.保存.取消的那个),直接把文件下载到指定目录 .此时就不得不绕过浏览器的这个对话框,自己写一个客户端的ja