2014-10-10 63 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