设为首页 收藏本站
查看: 1160|回复: 0

[经验分享] PHP开发的调试方法(NetBeans6.5, Notepad++)

[复制链接]
发表于 2018-12-20 11:49:58 | 显示全部楼层 |阅读模式
关于开发过程中调试手段的重要性就不阐述了,刚接触PHP脚本的开发方式,感觉调试很麻烦,上网查了一下,也有不少文章介绍,不过有些已经过时了,也有些并不完全正确和完整。

先介绍PHP Debugger的工作原理:
1.WEB服务器的PHP环境加载Debugger模块
2.在收到调试请求时,模块开始发生作用
3.收集相关运行时数据,发送到调试客户端显示运行时数据

所以,顺理成章,下面的安装步骤就不难理解了,分为WEB服务器端的配置和调试器端的配置两部分。

(一)WEB服务器
1.先获取调试模块
   Win: http://www.xdebug.org/download.php
   Linux: 用PEAR/PECL方式安装:pear install xdebug
   Linux: 用源码编译
最终得到一个dll文件(win)或so文件(linux)

2.找出WEB服务器使用的php.ini, 浏览一个包含phpinfo()函数的php文件查看输出信息.
    xampp(win) -> x:\xampp\apache\bin\php.ini
    debian     -> /etc/php5/apache2/php.ini
    CentOS     -> /etc/php.ini
上面举了几个例子,也不一定正确,以实际情况为准

3.修改php.ini(以win为例)
        [Zend]
        zend_extension_manager.optimizer_ts = "X:\xampp\php\zendOptimizer\lib\Optimizer"
        zend_optimizer.enable_loader = 1
        zend_optimizer.optimization_level=15
        [XDebug]
        ;; .ly Zend OR (!) XDebug --注意这里,zend_extension_ts必须只能一个有效
        zend_extension_ts="X:\xampp\php\ext\php_xdebug-xxx.dll"
        xdebug.remote_enable=true
        xdebug.remote_host=127.0.0.1
        xdebug.remote_port=9000
        xdebug.remote_handler=dbgp
        xdebug.profiler_enable=1
        xdebug.profiler_output_dir="X:\xampp\tmp"

---重启WEB服务器---


(二)调试器端
支持xdebug的dbgp协议的IDE/文本编辑器有很多,详细的请参考
http://www.xdebug.org/docs/remote中的CLIENTS。
下面以我实践过的来作说明

1.NetBeans6.5
这个异常简单,只需要在安装了PHP开发插件后,在它的选项页中检查调试器端口=9000即可。
使用时,在调试菜单中选择“调试项目”,就可以进入断点了
关于NetBeans进行PHP代码Debug的更详细信息,请参考:
http://zh-cn.netbeans.org/kb/docs/php/debugging.html

2.Notepad++
这是个开源项目,台湾程序员开发,支持本地语言界面,一个很强大的编辑器。
http://notepad-plus.sourceforge.net/uk/site.htm Notepad++主页
http://sourceforge.net/project/showfiles.php?group_id=189927&package_id=236520 调试器插件
安装npp插件:
下载回来后,把dbgpPlugin.dll文件copy到npp目录下plugins子目录中,重新运行npp

由于调试器客户端必须根据特定标志判断进行断点的,所以,进行WEB开发时,需要在http请求上作出一些调整才能正常工作。比如NetBeans6.5会在启动调试的浏览器进程时,在URL上加入XDEBUG_SESSION_START=xxxxx的QueryString变量,以判断是否启动断点。而npp是没有这个功能的(当然也可以增加运行菜单用特定参数的URL启动浏览器来解决),要手工加这个就太麻烦了,所以这里再推荐一个关于xdebug的firefox插件。

安装FireFox插件:
在firefox附加组件中搜索xdebug,安装xdebug helper扩展,安装完成后,会在状态栏多出来个图标,单击它会变绿或变淡,变绿时,它会在http请求中加入必要的cookie变量,让npp的debug插件可以正常工作。

使用:
    1.用notepad++打开php文件,然后在插件菜单选择Deugger.
    2.光标到希望断点的行,按下面的红色圆形按钮,可以增加一个断点
    3.点亮firefox的xdebug helper,浏览到相关php下就会在NPP进入调试断点
    4.熄灭firefox的xdebug helper,调试器不影响PHP执行


这里参考了一些其它高手的文章:
http://hi.baidu.com/icej/blog/item/2f6dfe5004edca5d1138c2d6.html

当然也参考了xdebug官方主页
http://xdebug.org/


xdebug的功能不止是在php开发WEB中进行调试,客户端也不止这两种,我自己就打算迟些把过渡到VIM上,毕竟notepad++只能跑在win上。
限于水平和精力,研究的深度很有限,有兴趣的同好,可以到官方主页了解详情,并作出指正,谢谢。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-653571-1-1.html 上篇帖子: 在php中如何快速交换数组元素的值 下篇帖子: Linux+php+memcache+APC加速PHP网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表