如何搭建开源PHP开发调试环境

现在PHP居然可以调试了。。唉~落后了。。。

 
一个好的集成开发环境可以使你的开发工作事半功倍,我使用过不少针对PHP的IDE,代码编辑和自动完成的功能都还不错,但代码调试方面大部分IDE都很薄弱,其中最好的应该是Zend Studio,通过和Zend Platform的集成,完美的实现了远程调试的功能,特别是附带的Firefox插件,使你能够方便的在Zend Studio中调试正在浏览的页面,十分人性化。但是Zend Studio的缺点也很明显,它是商业软件,而且Zend Platform在安装后会向系统中注册许多服务,其中就包括一个MySQL数据库服务,由于只能同时运行一个MySQL服务,这时如果你要使用像XAMPP这样的AMP(Apache、MySQL、PHP)集成安装包就会出现问题。
 
那么如何在Windows上搭建一个很好,很强大的PHP开发调试环境呢?经过多次尝试,我的解决方案是:WampServer + xdebug + PDT(PHP Development Tools),安装步骤如下:
 
1、下载最新版WampServer。下载地址:http://www.wampserver.com/en/download.php;
 
2、安装WampServer。我的安装位置是“D:\PHP\wamp”。在安装过程中,会让你设置PHP的mail()函数所需的信息,包括SMTP服务器等,只有正确设置了这些参数,才可以使用PHP发送邮件。在这里你可以使用邮件服务商提供的SMTP服务,或者在本地自己安装一个SMTP服务器,我使用的是1st SMTP Server。
 
3、将xdebug添加到WampServer中。从http://xdebug.org/下载对应于WampServer所使用的PHP版本的xdebug模块,我的是PHP 5.2.1-5.2.7。将下载下来的php_xdebug-2.0.2-5.2.5.dll复制到D:\PHP\wamp\bin\php\php5.2.5\ext下,重命名为php_xdebug.dll。在D:\PHP\wamp下新建目录xdebug,用来存储xdebug的输出文件。修改PHP配置文件D:\PHP\wamp\bin\apache\apache2.2.6\bin\php.ini,在文件最后加入以下内容:
 
[Xdebug]
zend_extension_ts = “D:/PHP/wamp/bin/php/php5.2.5/ext/php_xdebug.dll”
xdebug.auto_trace = On
xdebug.collect_params = On
xdebug.collect_return = On
xdebug.trace_output_dir = “D:/PHP/wamp/xdebug”
xdebug.profiler_enable = On
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = “D:/PHP/wamp/xdebug”
xdebug.remote_autostart = On
xdebug.remote_enable = On
xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_log = “D:/PHP/wamp/xdebug/xdebug.txt”
 
Xdebug设置说明里有各个参数的具体含义。
 
保存配置文件。启动WampServer,在浏览器中打开http://localhost/?phpinfo=1,确认xdebug模块已经成功加载。
 
4、从http://downloads.zend.com/pdt/all-in-one/下载最新版本的PDT,我选择的是1.0.2 win32版。将下载的压缩文件解压缩到D:\PHP\pdt。
 
5、从http://downloads.zend.com/pdt/debugger/下载最新的PHP debug插件,将解压后的features和plugins文件夹拷贝到D:\PHP\pdt\中,覆盖原有文件即可。
 
6、完成上述操作以后,你还需要对PDT进行一些设置才可以使用xdebug进行调试,这篇文档里有详细的说明:http://www.eclipse.org/pdt/documents/XDebugGuide.pdf
 
好了,现在你已经可以像调试Java程序一样对PHP程序进行本地与远程调试了,是不是觉得很爽。使用远程调试模式时,当一个调试进程启动后,会使用默认浏览器打开你调试的页面,你可以通过点击页面中的链接来对其他页面进行调试,非常方便。
 
不过在使用的过程中,我也发现了一个问题,就是在Expressions中数组的内容是32个元素为一组显示的(如[0…31],[32…63],…),当要查看的数组中的元素超过32个时,在Expressions中只能看到第一组[0…31]中的元素的值,其余的组都是空的。在Google上找了半天也没有答案,不知有没有人注意到或者已经找到解决的方法。
(转载:http://www.feelax.org/blog/2008/02/21/php-debugging-use-xdebug-and-pdt/)

 

发布者

小懿

RingCentral敏捷教练 不懂技术的产品经理不是好教练!

发表评论

邮箱地址不会被公开。 必填项已用*标注