2013-12-21 30 views
2

我的問題:Eclipse的Xdebug的凍結在57%

當啓動從Eclipse的調試配置爲我的PHP頁面之一,頁面打開成功在Chrome,但Eclipse調試器在57%凍結(在右下角Eclipse的角落)並且永遠不會進一步發展。設定的斷點永遠不會到達。

我的設置:

  1. 甲基苯丙胺2.2
  2. PHP 5.3.3
  3. Eclipse的開普勒
  4. 的Eclipse PDT
  5. Xdebug的
  6. 2虛擬主機與根/應用程序/ MAMP/htdocs
  7. Apache Port:80
  8. MySql服務器端口:3306

我在MAMP中的虛擬主機設置工作正常。下面是關於Xdebug的安裝截圖:

Eclipse XDebug Configuration

Eclipse PHP Server Configuration

Eclipse PHP Executable Configuration

php.ini Xdebug contents

我懷疑問題是由我的虛擬主機造成的。這兩個虛擬主機位於「/ Applications/MAMP/htdocs/ledworld」和「/ Applications/MAMP/htdocs/sandbox」下。我目前正在嘗試調試沙箱項目。

如果您可以提供詳細說明,我應該對附加的屏幕截圖或逐步說明如何設置這將是偉大的改變!

+0

你能告訴從Web服務器日誌是否收到請求?在客戶端上,與9000端口的連接是否已經完成(netstat -na | grep:9000'說是連接,還是隻是LISTENING)? –

+0

我檢查了apache_error.log和php_error.log,沒有任何東西被記錄在這些文件中。 netstat -na | grep:9000也不顯示任何內容(沒有行符合grep)。 – faridghar

+0

道歉,原來在php錯誤日誌中有這條線: [21-Dec-2013 15:36:45 Europe/Berlin] PHP警告:不支持遠程調試處理程序'「dbgp」'。在未知的行0 – faridghar

回答

1

這裏是任何人都停留在這個完整的解決方案:

/Applications/MAMP/bin/php/<your_php_version>/conf/php.ini的底部應該是這樣的:

[xdebug] 
zend_extension="/Applications/MAMP/bin/php/<your_php_version>/lib/php/extensions/no-debug-non-zts-<timestamp>/xdebug.so" 
xdebug.remote_enable=1 
xdebug.remote_host=sandbox 
xdebug.remote_port=9000 
xdebug.remote_handler=dbgp 
xdebug.idekey=ECLIPSE_DBGP 
xdebug.remote_log=/tmp/xdebug.log 

注意,然後xdebug.remote_host選項設置爲你給的名字你虛擬主機。所以在我的情況,我的httpd-vhosts.conf文件將containt這樣

<VirtualHost *:80> 
    ServerName sandbox 
    DocumentRoot /Applications/MAMP/htdocs/sandbox/ 
    <Directory /Applications/MAMP/htdocs/sandbox/> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     allow from all 
    </Directory> 
</VirtualHost> 

和我/private/etc/hosts文件中的一個條目將有這樣

127.0.0.1  sandbox 

條目從事物Eclipse的一側,在這裏是你應該做的。

配置Eclipse的XDebug調試器。確保所選端口與上面php.ini文件中指定的端口匹配

如果您希望外部程序觸發調試會話,請確保「接受遠程會話(JIT)」設置爲「localhost」(例如Chrome Xdebug助手擴展)。

Eclipse的首選項 - > PHP->調試 - >安裝Debuggers-> XDebug->配置 - >

Eclipse Debugger Configuration

新增或編輯在Eclipse中現有的PHP可執行文件:

請確保「可執行路徑」和「php.ini文件」字段指向MAMP正在使用的同一版本的PHP(MAMP-> Preferences ...-> PHP-> PHP Version。您可能不需要也要填寫「php.ini文件」字段,不過我也是這樣做的。

Eclipse的首選項 - > PHP-> PHP Executables->添加/編輯

Eclipse PHP Executable Configuration

安裝一個服務器在Eclipse:

我使用HTTP端口80用於MAMP下的Apache(MAMP- >首選項...->端口 - > Apache端口)。如果您使用差分端口,請確保將其包含在此屏幕的「基本URL」末尾。

Eclipse的首選項 - > PHP-> PHP服務器 - >新建/編輯

Eclipse PHP Server Configuration

創建一個新的Eclipse調試配置,看起來像這樣:

的 「PHP服務器」 應被設置爲您在上面創建的服務器。 「文件」應該設置爲您要在項目中調試的php文件。如果「URL」字段沒有顯示您期望在您的瀏覽器中輸入要加載PHP文件的內容(即http://<virtual_host>/path/to/file/being/debugged.php,則取消選中「自動生成」框並手動修改「URL」字段的第二部分,以便完整的URL是你所期望的。不要忘了補充一點,你的PHP腳本預計將在$ _GET變量找到任何查詢參數。

Eclipse Debug Configuration

調試配置應該是什麼樣子的「調試」選項卡這:

確保「服務器調試器」設置爲XDebug。我喜歡取消選中「在第一線休息」選項,因爲我覺得它總是在第一次休息時很煩人代碼。使用斷點來控制調試器停止的位置。

Eclipse Debug Configuration: Debugger Tab

這是所有你應該要做的。快樂調試! :)