這裏是任何人都停留在這個完整的解決方案:
您/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](https://i.stack.imgur.com/lFisi.png)
新增或編輯在Eclipse中現有的PHP可執行文件:
請確保「可執行路徑」和「php.ini文件」字段指向MAMP正在使用的同一版本的PHP(MAMP-> Preferences ...-> PHP-> PHP Version。您可能不需要也要填寫「php.ini文件」字段,不過我也是這樣做的。
Eclipse的首選項 - > PHP-> PHP Executables->添加/編輯
![Eclipse PHP Executable Configuration](https://i.stack.imgur.com/ZaYMh.png)
安裝一個服務器在Eclipse:
我使用HTTP端口80用於MAMP下的Apache(MAMP- >首選項...->端口 - > Apache端口)。如果您使用差分端口,請確保將其包含在此屏幕的「基本URL」末尾。
Eclipse的首選項 - > PHP-> PHP服務器 - >新建/編輯
![Eclipse PHP Server Configuration](https://i.stack.imgur.com/zJT7q.png)
創建一個新的Eclipse調試配置,看起來像這樣:
的 「PHP服務器」 應被設置爲您在上面創建的服務器。 「文件」應該設置爲您要在項目中調試的php文件。如果「URL」字段沒有顯示您期望在您的瀏覽器中輸入要加載PHP文件的內容(即http://<virtual_host>/path/to/file/being/debugged.php
,則取消選中「自動生成」框並手動修改「URL」字段的第二部分,以便完整的URL是你所期望的。不要忘了補充一點,你的PHP腳本預計將在$ _GET變量找到任何查詢參數。
![Eclipse Debug Configuration](https://i.stack.imgur.com/x2yXL.png)
調試配置應該是什麼樣子的「調試」選項卡這:
確保「服務器調試器」設置爲XDebug。我喜歡取消選中「在第一線休息」選項,因爲我覺得它總是在第一次休息時很煩人代碼。使用斷點來控制調試器停止的位置。
![Eclipse Debug Configuration: Debugger Tab](https://i.stack.imgur.com/vqYLE.png)
這是所有你應該要做的。快樂調試! :)
你能告訴從Web服務器日誌是否收到請求?在客戶端上,與9000端口的連接是否已經完成(netstat -na | grep:9000'說是連接,還是隻是LISTENING)? –
我檢查了apache_error.log和php_error.log,沒有任何東西被記錄在這些文件中。 netstat -na | grep:9000也不顯示任何內容(沒有行符合grep)。 – faridghar
道歉,原來在php錯誤日誌中有這條線: [21-Dec-2013 15:36:45 Europe/Berlin] PHP警告:不支持遠程調試處理程序'「dbgp」'。在未知的行0 – faridghar