时间 2014-01-25 00:53:55 CSDN博客原文 http://blog.csdn.net/zztfj/article/details/18750295
Eclipse for php + Xdebug搭建PHP的调试环境
第一步:到Eclipse的官网去下载PHP-Eclipse: http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliossr1
第二步:下载Xdebug (下载地址位于: http://xdebug.org/download.php ,我的PHP版本为 PHP 5.3.28 Thread Safety, Apach为2.2.25,使用的端口号8080),我下载的Xdebug版本为 php_xdebug-2.2.3-5.3-vc9.dll ,并且放入到"PHP/ext目录中。
第三步:在PHP5里面找到php.ini,在这个文件的最后面加入如下配置信息:
zend_extension = D:\php\ext\php_xdebug-2.2.3-5.3-vc9.dll
;zend_extension_ts = D:\php\ext\php_xdebug-2.2.3-5.3-vc9.dll
;extension = php_xdebug-2.2.3-5.3-vc9.dll
[Xdebug]
xdebug.auto_trace = On
xdebug.show_exception_trace = On
xdebug.remote_autostart = On
xdebug.remote_enable = On
xdebug.collect_vars = On
xdebug.collect_return = On
xdebug.collect_params = On
xdebug.trace_output_dir=”D:/xDebugLog”
xdebug.profiler_output_dir=”D:/xDebugLog”
xdebug.profiler_enable=On
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
这里要特别注意:如果在文件里有其他的zend_extension_ts,需要注释掉,否则apache无法启动。
第四步:启动apache。
第五步:在eclipse的项目里的Properties里面找到"PHP Debug",在PHP Debugger里面选择"XDebug"
第六步:再在Windows->Preferences里面配置下PHP Servers
第七步:再在Windows->Preferences里面配置下PHP Executables
第八步:再在Run->Debug Configurations里面确认Path Mapping的配置和第六步中的一致。
接下来,进入debug界面,就可以开始设置断点进行debug了。
配置中遇到的问题:
1 、在 phpinfo(); 打印的信息中一直找不到 Xdebug 的字样。
解决办法:在 php.ini 文件中,作如下修改:
zend_extension_ts = D:\php\ext\php_xdebug-2.2.3-5.3-vc9.dll
[Xdebug]
xdebug.auto_trace = On
修改为:
;zend_extension_ts = D:\php\ext\php_xdebug-2.2.3-5.3-vc9.dll
extension = php_xdebug-2.2.3-5.3-vc9.dll
[Xdebug]
xdebug.auto_trace = On
2 、在代码中添加断点,但是断点无效,不能停止。
解决办法:在 php.ini 文件中,作如下修改:
;zend_extension_ts = D:\php\ext\php_xdebug-2.2.3-5.3-vc9.dll
extension = php_xdebug-2.2.3-5.3-vc9.dll
[Xdebug]
xdebug.auto_trace = On
修改为:
zend_extension = D:\php\ext\php_xdebug-2.2.3-5.3-vc9.dll
;zend_extension_ts = D:\php\ext\php_xdebug-2.2.3-5.3-vc9.dll
;extension = php_xdebug-2.2.3-5.3-vc9.dll
[Xdebug]
xdebug.auto_trace = On
我的 php 版本明明是 Thread safe ,但是此处使用 zend_extension_ts ,却不行,不太明白。
3 、断点只能在第一行起效,后面的仍不能停止。
解决办法:参考上面第五步,选中 Use MultiSession ;参考上面第八步,确认 Path Mapping 的配置。