2014-10-10 65 views
3

以前,我使用了MAMP v2.x,它與XDebug很好地協同工作。它被配置,所以我可以打開和關閉切換它使用下面的書籤JavaScript的每個瀏覽器連接:使用XDebug和PHPStorm進行本地命令行調試,MAMP Pro,OS X

javascript:(/**%[email protected]%200.5.2%20*/function()%20{document.cookie='XDEBUG_SESSION='+'PHPSTORM'+';path=/;';})() 

javascript:(/**%[email protected]%200.5.2%20*/function()%20{document.cookie='XDEBUG_SESSION='+''+';expires=Mon,%2005%20Jul%202000%2000:00:00%20GMT;path=/;';})() 

我也可以調試腳本使用bash命令行上執行打開和關閉調試用:

export XDEBUG_CONFIG="idekey=PHPSTORM" 
unset XDEBUG_CONFIG 

我已經升級到MAMP Pro 3.x,並從瀏覽器進行調試工作,並可以打開和關閉JS書籤。但是,我一直無法從終端調試工作。 MAMP的默認安裝是讓XDebug自動啓動。我不希望這樣,因爲它在調試過程中阻止訪問服務器上的其他站點,所以我修改了配置。下面是我有:

[xdebug] 
MAMP_Xdebug_MAMP 
xdebug.remote_enable=on 
xdebug.remote_log="/var/log/xdebug.log" 
xdebug.remote_host=localhost 
xdebug.remote_handler=dbgp 
xdebug.remote_mode=req 
xdebug.remote_port=9000 
xdebug.idekey="PHPSTORM" 

所以我的腳本使用正確的PHP程序,我掛符號在/ usr/bin中/ PHP來/Applications/MAMP/bin/php/php5.4.30/bin/php

我也試着重新打開xdebug.remote_autostart,看看能否從終端工作中進行調試。不行。

網絡上有很多關於如何做遠程命令行調試的信息,但我沒有發現任何有助於本地命令行調試的信息。

我正在尋找關於如何使用MAMP Pro 3.x進行本地命令行調試的想法。

解決方案更新:我從cli運行了一個腳本phpinfo(),並發現由於某種原因從命令行調用php時,它加載了一個不同的php.ini。我將以下內容添加到/Applications/MAMP/bin/php/php5.4.30/conf/php.ini,它現在可以工作了!

zend_extension="/Applications/MAMP/bin/php/php5.4.30/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so" 
xdebug.remote_enable=on 
xdebug.remote_log="/var/log/xdebug.log" 
xdebug.remote_host=localhost 
xdebug.remote_handler=dbgp 
xdebug.remote_mode=req 
xdebug.remote_port=9000 
xdebug.idekey="PHPSTORM" 

感謝@Niloct的火花,導致我的解決方案,雖然我很慚愧我沒有先想到它的想法。 :/

+0

是否啓用了phpstorm的listen按鈕? – Niloct 2014-10-10 17:00:00

+0

是聆聽按鈕已啓用。我還測試了瀏覽器的調試,以確認它正在監聽,然後立即嘗試cli。 – 2014-10-10 17:42:48

+0

哇。 1年半後,我升級電腦並遇到同樣的問題。谷歌搜索我找到自己的答案,這是我需要的解決方案。希望我可以放棄它。 LOL – 2016-05-30 02:47:03

回答

1

在PHP安裝目錄,確保配置xdebug.iniconf.d目錄中,以便CLI和Web服務器得到Xdebug的激活:

MacBook:5.5 teixeira$ pwd 
/usr/local/etc/php/5.5 

MacBook:5.5 teixeira$ ls 
conf.d    php-fpm.conf   php.ini 
pear.conf   php-fpm.conf.default 

MacBook:5.5 teixeira$ ack -i xdebug 
conf.d/ext-xdebug.ini 
1:[xdebug] 
2:zend_extension="/usr/local/Cellar/php55-xdebug/2.2.4/xdebug.so" 
3:xdebug.remote_enable = 1 
4:xdebug.remote_host = 127.0.0.1 
5:xdebug.remote_port = 9005 
6:xdebug.remote_handler = dbgp 
7:xdebug.profiler_enable=0 
8:xdebug.profiler_enable_trigger=1 
9:xdebug.idekey=PHPSTORM 
10:xdebug.remote_log="/tmp/xdebug.log" 

然後發出php -i | grep xdebug檢查它是否在CLI的加載。

此外,三重檢查端口,注意我使用9005,因爲我與php-fpm發生衝突。

+1

不是實際的解決方案,而是接受它作爲答案,因爲我所要求的只是想法,而你的想法就是這樣。 :) – 2014-10-10 19:19:45

+0

是的破壞innertia是重要的:)很高興看到這一點。 – Niloct 2014-10-10 21:14:28