Ранее у меня был 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 с /Applications/MAMP/bin/php/php5.4.30/bin/php
Я также попытался включить xdebug.remote_autostart, чтобы посмотреть, смогу ли я получить отладку на работающем терминале. Нет идти.
В Интернете есть много информации о том, как выполнять удаленную отладку командной строки, но я не нашел ничего, что поможет при локальной отладке командной строки.
Я ищу идеи о том, как я могу получить отладку локальной командной строки, работая с MAMP Pro 3.x.
ОБНОВЛЕНИЕ РЕШЕНИЯ: Я запустил скрипт с phpinfo () из cli и увидел, что по какой-то причине при вызове 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 и веб-сервер активировать 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
,
Других решений пока нет …