org/eclipse/php/internal/debug/core/preferences/PHPProjectPreferences的处理方法

今天碰到了一件很郁闷的事情,上午本来很开心的安装好了Zend Debug的,可是下午不知道出现什么问题,一直弹出错误提示,很莫名其妙,严重影响了工作效率。

比如类似:org/eclipse/php/internal/debug/core/preferences/PHPProjectPreferences,或者org.eclipse.debug.core.DebugException:总是感觉和debug相关的错误。

莫非上午设置了什么内容,导致了下午的问题,然后搜索了很多地方,包括zend的官方论坛,http://forums.zend.com/viewtopic.php?f=59&t=69053,

类似这样的:


Error creation extension for extension-point org.eclipse.php.internal.debug.daemon.communication
Plug-in com.zend.php.debug.core was unable to load class com.zend.php.debug.core.communication.AdvancedDebuggerCommunicationDaemon.
An error occurred while automatically activating bundle org.eclipse.php.debug.core (292).


非常吐血,我重新安装了ZS,删除了C:\USER\.zendstudio\等下面的内容,重新安装了一个新的版本,依然出现类似的问题,问题到底在哪?

通过部分类似的帖子:

http://blog.csdn.net/yangfeitarena/article/details/4323778

考虑可能有java版本的问题,我下载的ZS是继承了JAVA环境的,似乎看起来是1.6,而我本机上面安装的是1.7,而且系统总是提示我查看log错误日志,我一直

不知道,错误日志在哪里。开发碰到了天花板,效率极速下降。

经过仔细的观察, 既然重新软件也不行,一定是和软件不相关的地方出现了问题。我大胆推测可能是文件所在的目录有文件出现bug。而且我突然发现,如果我

切换一个workspace,没有发现错误。大致明白原因了。

解决方法:

(1)删除当前目录下所有和ZS有关的文件,这样我就发现了E:\.metadata\.log文件,这个时候我的根目录是在E盘。

(2)重建工程






大致方法如下:


解决方案在本地已经搭建过了Zend Debug的环境,调试起来很方便,关键是在接触新的框架时,能够跟踪整个流程,这样对框架的理解会带来很大的便利。于是考虑是否可以在我们的cloud搭建Zend Debug的远程调试呢?经过搜索后,找到了一些方案,在今天上午进行搭建测试后,it works! 方法如下,给大家提供一点参考,希望对某些同事带来一点帮助。

 

前期准备:Zend Studio 9.0.2(就用最新版),需要的同事可以找我或者zend官网下载,然后进行破解,方法见我的博客:http://blog.csdn.net/jallin2001/article/details/7098316,在ZS中内置集中了XDebugZend Debug,推荐使用Zend Debug。另外可以下载FF的插件ZendStudio Toolbar 2.6,截图如下:

 

 

该插件可以方便的启动ZS的调试,页面性能测试等功能。最关键就是下载ZendDebugger-v5.2-linux-glibc23-i386.tar.gz(见附件),这个是linux版本的,具体操作方法:

 

(1)    解压ZendDebugger-v5.2-linux-glibc23-i386.tar.gz到任意目录,解压后的截图:

 

(2)   查看自己服务器的PHP版本,比如当前cloud的版本为5.2.14,复制5_2_x_comp文件中的php的模版安装目录,

可以通过phpinfo()查看extension_dir的目录,就是模版安装目录,打开php.ini,可以在文件的结尾输入:

 

zend_extension=.so的存放目录,可以全路径,或者cpextension_dir目录,直接写zend_extension=ZendDebugger.so

zend_debugger.allow_hosts=为允许的客户端的IP地址,这里写上大家的内网IP,比如我的为10.8.6.28,深圳同事可以写自己的内网IP

(如果深圳同事需要使用该调试,可以在这里添加上自己的IP地址进行测试)

Zend_debugger.expose_remotely=always

 

(3)   重启服务器,/usr/local/apache2/bin/apachectl -k graceful进行优雅重启,执行phpinfo(),应该就可以看到,这样表示服务器调试开始支持

 

(4)   ZS的配置,这里比较关键,我直接用截图的方式让大家看的更清晰,这里是PHP Servers的所有服务器列表,可以自行进行添加

填写服务器的名字和对应的URL,可以直接用IP,也可以通过域名的方式,通过域名的方式,需要DNS解析,可以在Tunnel中添加

IP地址,或者在系统的hosts中添加虚拟地址,10.6.224.192  cloud.ied.com,然后ZS工具栏中的RUN->Debug As->PHP Web Application

填上自己想要的远程调试的url地址,启动

 

(5)   这里是远程调试的关键原理,由于远程调试是通过特定的接口,使用本地的ZS与远程的服务器进行通信,调试信息的展示需要在本机显示,

所以这里需要在本地有远程调试的代码模版,而且需要和远程一致,如果有不一致的情况,调试会出现错误,尽管本机理论上正确,实际上

本地的代码只是远程代码的一个引用,这点尤其在使用PHPrequireinclude等方法时,特别明显。一定需要使用远程的正确路径,否则

代码执行中会出现文件不存在等错误,影响了正常的调试。

 

         本地调试更简单,方法和上述类似,只要想象本地服务器就是远程服务器即可。如果大家在实际使用中有什么问题,欢迎随时和我讨论,希望能带来一些帮助,谢谢!

 

 

          

 

 

 

(一旦你看到这样的界面,恭喜,远程调试成功,祝你好运!




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值