Подтвердить что ты не робот

Настройки xdebug на MAMP PRO

Я пытаюсь настроить xdebug на mamp pro без успеха. Я искал по всему Интернету, мне ничего не помогало.

Сначала я попытался просто раскомментировать следующую строку в php.ini:

zend_extension = "/Applications/MAMP/bin/PHP/php5.4.4/Lib/PHP/расширения/нет отлаживать-не-ЗТС-20100525/xdebug.so"

Далее, я попробовал мастер: http://xdebug.org/wizard.php

Затем я попытался добавить эти строки в php.ini:

xdebug.default_enable = 1

     

xdebug.remote_enable = 1

     

xdebug.remote_handler = DBGp

     

xdebug.remote_host = локальный

     

xdebug.remote_port = 9000

     

xdebug.remote_autostart = 1

Ничего не помогает. Я не вижу xdebug в моей phpinfo.

MAMP PRO Версия: 2.1.1

PHP-версия: PHP 5.4.4

Спасибо!

4b9b3361

Ответ 1

Так как выпуск MAMP 2.01 XDebug уже включен.

решаемая. Здесь учебник, который помог мне:

  • Запустите MAMP

  • Измените файл шаблона php.ini через MAMP, чтобы включить расширение. Отредактируйте файл шаблона с помощью File → Edit Template → PHP → PHP php.ini

    edit php.ini template for mamp on mac osx

  • Отредактируйте нижнюю часть файла шаблона php.ini, чтобы он выглядел так, как будто вы хотите получить профиль

    [xdebug]
    zend_extension="/Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
    xdebug.profiler_enable = 1
    xdebug.profiler_output_dir = "/tmp"
    ; DONT REMOVE: MAMP PRO php5.3.6.ini template compatibility version: 1
    

    Если вы не хотите выводить профиль и хотите, чтобы xdebug работал, используйте

    [xdebug]
    zend_extension="/Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
    xdebug.profiler_enable = 0
    xdebug.profiler_output_dir = "/tmp"
    ; DONT REMOVE: MAMP PRO php5.3.6.ini template compatibility version: 1
    

    Теперь, когда у вас есть ошибки, если они отправлены на стандартную версию, вы увидите что-то вроде этого

    Мой php.ini файл:

    edited php.ini file to run xdebug on mamp mac osx

  • Сохранить отредактированный шаблон и закрыть окно редактирования

  • Перезапустите MAMP

  • Откройте страницу Web-страницы MAMPs и перейдите на вкладку PHPInfo. Убедитесь, что Xdebug запущен. Выполнение поиска в окне браузера для "Xdebug" упрощает это.

    confirm xdebug running on mamp on mac osx

  • Если вы использовали те же настройки, что и у меня выше, при запуске PHP-кода Xdebug поместит файлы cachegrind.out в ваш каталог /tmp. Откройте свою директорию /temp и запустите один из ваших файлов PHP, чтобы убедиться, что он работает правильно. Вы можете открыть каталог '/tmp в finder, открыв терминал и запустив

    open /tmp
    

    cachegrind.out output in /temp folder for mamp on mac osx

  • Теперь вы можете использовать любое приложение, которое понимает файлы cachegrind.out для просмотра данных профиля. Приложения, такие как KCacheGrind (Linux/Windows, KDE), WinCacheGrind (Windows), xdebugtoolkit и Webgrind. Я прошел простой маршрут и использовал webgrind. Webgrind - это простое веб-приложение, которое можно запустить локально на MAMP, и он будет искать файлы cachegrind.out автоматически одним щелчком мыши. Продолжайте шаги по настройке с помощью webgrind.

  • Загрузить Webgrind

  • Настройка узла Webgrind на MAMP для запуска Webgrind

    Setup webgrind as host on mamp to process xdebug php profile output

  • Посетите webgrind url setup на локальной установке MAMP. Шахта была просто webgrind/

  • Если у вас уже есть выходные файлы cachegrind, вы должны выбрать файл в раскрывающемся списке "Авто (новейший)" или оставить его в меню "Авто" и нажать "Обновить", в котором будут отображаться данные профиля.

  • Бросьте праздничный кулачный насос

Ответ 2

У меня были проблемы с настройкой MAMP Pro и nginx, и ответ выше не работал для меня.

Проблема заключалась в том, что настройка порта по умолчанию - 9000, и в моем случае этот порт уже используется, поэтому я посмотрел в своей конфигурации nginx следующую строку:

location ~ \.php$ {
            try_files        $uri =404;
            fastcgi_pass     unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock;
            fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include          fastcgi_params;
        }

затем перейдите к файлу, расположенному при установке fastcgi_pass, и там вы найдете правильный номер порта. В моем случае это было в Applications/MAMP/Library/logs/fastcgi и имя файла зависит от версии вашего хоста php.

Затем откройте этот файл и установите любой PID в xdebug.remote_port в php.ini, для меня это было 13267.

Возможно, стоит упомянуть, что моя конфигурация MAMP для PHP настроена на режим CGI, а не на модули.

РЕДАКТИРОВАТЬ:

Я только что понял, что номер порта динамически меняется слишком сильно. Поэтому я установил жестко заданное значение для fastcgi pass в моем шаблоне nginx для MAMP следующим образом:

fastcgi_pass      127.0.0.1:9072;
# comment out the regular setting just in case.
# fastcgi_pass     unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock;