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

來源:互聯網
上載者:User

今天碰到了一件很鬱悶的事情,上午本來很開心的安裝好了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中內建集中了XDebug和Zend
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的存放目錄,可以全路徑,或者cp到extension_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與遠端伺服器進行通訊,調試資訊的展示需要在本機顯示,

所以這裡需要在本地有遠端偵錯的代碼模版,而且需要和遠程一致,如果有不一致的情況,調試會出現錯誤,儘管本機理論上正確,實際上

本地的代碼只是遠程代碼的一個引用,這點尤其在使用PHP的require,include等方法時,特別明顯。一定需要使用遠端正確路徑,否則

代碼執行中會出現檔案不存在等錯誤,影響了正常的調試。

 

         本地調試更簡單,方法和上述類似,只要想象本機伺服器就是遠程伺服器即可。如果大家在實際使用中有什麼問題,歡迎隨時和我討論,希望能帶來一些協助,謝謝!

 

 

          

 

 

 

(一旦你看到這樣的介面,恭喜,遠端偵錯成功,祝你好運!)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.