使用XDebug和PHPStorm、MAMP-Pro、OS-X进行本地命令行调试

使用XDebug和PHPStorm、MAMP-Pro、OS-X进行本地命令行调试,php,debugging,mamp,xdebug,Php,Debugging,Mamp,Xdebug,之前,我让MAMP v2.x与XDebug一起工作得非常好。它的配置使我可以使用以下带书签的JavaScript为每个浏览器连接打开和关闭它: javascript:(/**%20@version%200.5.2%20*/function()%20{document.cookie='XDEBUG_SESSION='+'PHPSTORM'+';path=/;';})() javascript:(/**%20@version%200.5.2%20*/function()%20{document.c

之前,我让MAMP v2.x与XDebug一起工作得非常好。它的配置使我可以使用以下带书签的JavaScript为每个浏览器连接打开和关闭它:

javascript:(/**%20@version%200.5.2%20*/function()%20{document.cookie='XDEBUG_SESSION='+'PHPSTORM'+';path=/;';})()

javascript:(/**%20@version%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 sym链接到/Applications/MAMP/bin/php/php5.4.30/bin/php

我还试着重新打开xdebug.remote\u autostart,看看是否可以通过终端进行调试。不行

web上有很多关于如何进行远程命令行调试的信息,但我没有发现任何有助于本地命令行调试的信息

我想知道如何使用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激发了我的想法,使我找到了解决方案,尽管我很惭愧,我一开始没有想到这一点/

在PHP安装目录中,确保配置
xdebug.ini
位于
conf.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 | grepxdebug
检查它是否加载到CLI中


另外,再次检查端口,注意我正在使用
9005
,因为我与
php fpm

冲突,phpstorm上的侦听按钮是否已启用?是,侦听按钮已启用。我还测试了浏览器的调试,确认它正在侦听,然后立即尝试cli.Wow。1年半后,我升级了电脑,也遇到了同样的问题。谷歌搜索我找到了自己的答案,这是我需要的解决方案。但愿我能投它一票。LOL不是实际的解决方案,而是接受它作为答案,因为我所要求的只是想法,而你的想法就是答案。:)是的,打破内心世界很重要:)很高兴看到这一点。