[转载]PHP调试环境 - 岁月无声 - 博客园

[转载]PHP调试环境 – 岁月无声 – 博客园.

PHP调试总是那么让人觉得不满意,但还是要用呀:),就如xampp,LAMP,LNMP,等配置,总是随着版本升级有这样那样的变化,有空写一个通用的配置工具与大家共享,呵呵。

 

Step 1:IDE选择

由于以前用的工具太多,常会在eclipse中加载Android,maven,j2ee,SSH,CXF等一系经工具,导致出现莫名其妙的问题。于是有了下面的建议:

下载Eclipse for PHP Developers,地址 http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliossr2

当然,你也可以选择去下载PDT插件,或直接从eclipse上安装这个插件。

Step 2: Debugger 选择

有两个Debugger可以选择,Zend Debugger,另一个是Xdebug,当然由于Xdebug完全免费,下载简单。首先它,地址 http://xdebug.org/download.php

下载时,要针对你所使用的平台下载对应的文件,如果在windows下,可以下载相应的binaries.也就是动态库,至于64位的问题,你一定要下载 与你的PHP所使用的环境一致。比如,虽然你用的是windows 64操作系统,但使用的是32位的php编译版本,你也要使用对应的32位的xdebug.这个我在配置时,花了不少时间去解决这个问题

Step 3: PHP与debugger整合

解压xdebug,把得到的dll 放到你的Web 服务器所用的php相对应的扩展目录中,因为我常会在一台机器上有数十种开发环境,所以会遇到各样的问题,你在配置时一定放到你调试时所使用的php环境 下。Eclipse for PHP自己并不带有php环境。具体方法就是:

a,把php_xdebug-2.2.1-5.4-vc9.dll放到php的 ext目录下。

b.修改php.ini 在文件后面加下如下:

[Xdebug]

zend_extension =”D:/Develop/Web/PHP549/ext/php_xdebug-2.2.1-5.4-vc9.dll” ;(路径根据自己情况设置)

xdebug.auto_trace = On
xdebug.show_exception_trace = On
xdebug.remote_autostart = On
xdebug.remote_enable = On

切记一点就是zend_extension这个指令的使用,在PHP5.3以前的版本,要根据PHP对线程的安全设置,或者根据DEBUG BUILD设置情况使用不同的zend_extension指令

比如,如果PHP设置了线程安全,就要用zend_extension_ts =  =”D:/Develop/Web/PHP549/ext/php_xdebug-2.2.1-5.4-vc9.dll” 来代替zend_extension.否则就出错,而在PHP5.3以后的版本

就不必这样麻烦了,都直接使用zend_extension而zend_extension_ts不再被使用。

测试配置是否成功的方法很简单,启动web服务器,用phpinfo()打印php环境数据,如果看到Xdebug 一大堆的参数及参数值,你就成功了。如果没有,你就慢慢配置吧,如果遇到问题,你就要去读那些英文资料了。

资料地址:http://www.eclipse.org/pdt/articles/debugger/os-php-eclipse-pdt-debug-pdf.pdf 如果不成功,就是你英文水平的问题了:)

Step 4: 配置 PDT与xdebug进行整合。

a. 打开eclipse for php developers中的Preferences->PHP->Executables. 加入第三方的PHP环境,就是我们刚才配置过的那个PHP目录(假设你有很多PHP环境的话,就要选对哟),这里Add后,主要是录入PHP executable path,就是PHP.exe或者php-cgi.exe,这是不同的php执行方式。选哪一个都一样。同时要选择debugger,你要选择 xdebug.

b. 打开eclipse for php developers中的Preferences->PHP->Debug ,在Default Setting中,PHP Debugger选择Xdebug, Server可以选择 Default PHP Web Server PHP Executable就选持刚刚加入的executable就可以了。

Step 5: 进行初步脚本调试。

经过以上的配置,就可以创建PHP项目,并对项目中的php进行脚本直接调试了。在项目上右键选择Debug as ->PHP Script进行调试,当在,这个Debug要配置一个Debug的Configuration.在这个调试configuration,中选择 Alternate PHP 为刚才创建的 PHP 的Executable. 下面的PHP File就是选择你想单步调试的php文件即可。

这里会有一个bug,就是本置完以上步聚时,一定要重启一下eclipse for PHP,不然会出现xdebug工作,但eclipse for PHP不显示调试过程的情况,即看不到断点是否被执行到。重启一下就ok.

Step6: 进行远程Web调试

在上面的基础之上,你要对Default PHP Web Server进行配置。主要是映谢URL到你的php文件。比如网站调试时,第一个是index.php在你的项目里是 myproject/index.php,就要在web server的配置里的mapping里映射

http://localhost/myproject  ——— myproject/ 这样在调试时访问http://localhost/myproject/时,就会映谢到你的index.php文件了。这里的更多细节就不想写了

主要是理解调试的 原理:

PHP Script 调试就是用第三方的PHP.exe来执行你的项目中的php文件,会通过xdebug把执行的过程信息通过9000网络端口传给你的eclipse for PHP.然后eclipse 把调试信息再传给xdebug.

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏