来源: 在NotePad++中安装DBGP debugger调试PHP程序 – 上善若水 – 博客频道 – CSDN.NET
版权声明:本文为博主原创文章,未经博主允许不得转载。
本文章涵盖了NotePad++ 的安装、Xdebug 的安装、DBGP插件 的安装以及简单的调试Php 的示例。
DBGP插件(PlugIn)如何工作
1、Web浏览器(例如:FireFox )通过Http端口(80)请求Url来访问Apache Server。
2、XDebug 是Apache的一个扩展(DLL In Windows),类似于GD库。
3、XDebug 是Web Server(Apache)与远程调试客户端(例如:NotePad++的DBGP插件 )的一个接口,他们之间通过9000端口通信。
Wire Flow:
Web browser <==> Port 80 <==> Apache + PHP + Xdebug extension <==> Port 9000
<==> DBGp Plugin-notepad++
1、开启NotePad++,BDGP插件打开9000端口。
2、Web browser向Apache 请求一个php页面,请求的Url中包含一个指定的参数
(即:XDebug_SESSION_START)以便激活远程调试。
3、Apache 调用Php 解释器(Interpreter)。
4、Php解释器加载XDebug 模块。
5、XDebug 模块检测到第2步发送的XDebug_SESSION_START参数,开启远程调试。
6、XDebug 连接到远程调试客户端(依赖于XDebug 的配置项,在php.ini中)。
7、XDebug 和调试客户端建立连接以后,通过9000端口进行对话。
8、当调试客户端向XDebug 发送执行Php语句的指令后,Php 解释器执行Php语句,相应的输出由Apache通过80端口发送出去到Web Browser。
9、当所有的php代码执行完后,XDebug 断开与调试客户端的连接。
10、Apache 断开与Web Browser的Http连接。
安装步骤
首先,你先安装好Apache和Php的运行环境,这个我就不说了,不会安装的话,看这里 ,也可以跟我一样,使用xampp ,还有WinLamp 也推荐一下,反正是开发环境,不是生产环境。
我用的xampp,php模块安装在c:/xampp/php目录下(这个因人而异)。
1、安装NotePad++,注意,不要选择exe安装包,选择zip 包,使用包中的ansi版本即可(新建一个文件夹notepad++到c:/Program Files,将ansi下面的所有文件拷贝进去),否则在你安装DBGP插件的时候会报错 (This ANSI plugin is not compatible with your Unicode
Notepad++)。
2、下载NotePad++ 的中文xml文件 ,将其重新命名为nativeLang.xml,放到notepad++的根目录下(c:/Program Files/notepad++)。
3、下载DBGP插件 ,一个Zipped文件,解压以后,将dbgpPlugin.dll和Readme.txt文件复制到Notepad++的plugins目录下(c:/Program Files/notepad++/plugins)。
4、创建一个php文件phpinfo.php,打印php的配置信息。
<?php phpinfo(); ?>
5、 新建一文件夹supplier到apache的htdocs目录下,执行phpinfo.php,即:http://localhost /supplier/phpinfo.php 检查你的php版本,我的php版本是5.1.4,确认你的php.ini文件的位置,以及php扩展库extensions文件夹的路径。比如:
图中表明:
php.ini文件在C:/WebServer/Apache2/modules/php/ 文件夹下
扩展库的路径是C:/WebServer/Apache2/modules/php/ext/
6、到XDebug的官方网站 上下载XDebug For Php的Module,注意要与你的php的版本相匹配,对我来说,就是 PHP 5.1.2 – 5.1.6 ,对应的扩展库为php_xdebug-2.0.0-5.1.6.dll
7、拷贝php_xdebug-2.0.0-5.1.6.dll 文件到你的php扩展库文件夹,比如:C:/WebServer/Apache2/modules/php/ext/ (php.ini中的extension_dir 项)
8、用Windows记事本软件打开php.ini,增加下面的几行到php.ini的最后
[xdebug]
zend_extension_ts="C:/WebServer/Apache2/modules/php/ext/php_xdebug-2.0.0-5.1.6.dll" xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_host=127.0.0.1 xdebug.remote_mode=req xdebug.idekey=default xdebug.remote_log="D:/www/ourcommunity.dev/log/xdebug.log" xdebug.remote_port=9000 xdebug.show_exception_trace=0 xdebug.show_local_vars=9 xdebug.show_mem_delta=0 xdebug.trace_format=0 根据你自己的情况设置zend_extension_ts和xdebug.remote_log两项。 9、重新启动apache,如果apache启动失败,试着将php.ini中关于zend的配置项注释掉。 比如: ;zend_extension_manager.optimizer_ts = "C:/xampp/php/zendOptimizer/lib/Optimizer" 10、重新执行phpinfo.php文件,有没有看到其中的xdebug区域?
配置Notepad++ 1、打开Notepad++,进入插件菜单,弹出DbGp下拉菜单列表。
2、点击"Config... "菜单项,如下图一样配置DbGp调试器(Remote Path 和 Local Path是你的php文件所在的文件夹)
简单示例