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

时间:2014-10-10 16:47:44

标签: 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.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二进制文件我将sym链接到/ usr / bin / php到/Applications/MAMP/bin/php/php5.4.30/bin/php

我还尝试重新打开xdebug.remote_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激发了让我解决问题的想法虽然我感到惭愧但我起初并没有想到它。 :/

1 个答案:

答案 0 :(得分:1)

在PHP安装目录中,确保配置xdebug.ini位于conf.d目录中,以便cli和webserver激活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发生了冲突。