Отладка php c xDebug в Php Storm

mbaev 07.03.2017, 10:37

Для настройки xDebug, с помощью которого можно выполнять отладку php приложений, с помощью этой статьи, необходимо иметь:

Настройка расширения xDebug

Настройка простая и занимает ~5 минут для подготовленного и ~15 для неподготовленного человека.

  1. Ищем место, где находится файл php.ini. Выполняем в консоли/терминале:
    1. php --ini

    Результат:

    1. C:\Users\mbaev>php --ini
    2. Configuration File (php.ini) Path: C:\Windows
    3. Loaded Configuration File:         D:\Server\modules\php\PHP-5.6\php.ini
    4. Scan for additional .ini files in: (none)
    5. Additional .ini files parsed:      (none)

    Файл .ini находится в D:\Server\modules\php\PHP-5.6\php.ini.

  2. Открываем php.ini  и дописываем в категорию [Xdebug] (если есть, если нет - создаем) следующие параметры:
    1. xdebug.idekey = "PHPSTORM"
    2. xdebug.default_enable = 1
    3. xdebug.remote_enable = 1
    4. xdebug.remote_host = 127.0.0.1
    5. xdebug.remote_port=9000
    6. xdebug.remote_handler="dbgp"
    7. zend_extension = "<full path to extension>"

    Если вы используете Open-Server, то там уже должны быть какие-то настройки, связанные с xDebug. Их нужно закомментировать знаком ";"

Настройка Php Storm

  1. Открываем настройки PHP
    xdebug-phpstorm
  2. Добавляем путь до php-интерпретатор.
    xdebug-phpstorm
  3. После добавления Php Storm автоматически определит версию php.
    xdebug-phpstorm
  4. После нажатия кнопки "Ok", Php Storm автоматически выберет только что добавленный интерпретатор.
    xdebug-phpstorm
  5. Добавляем в шторм информацию о расположении нового сайта.
    xdebug-phpstorm
  6. Обязательно нужно добавить маппинг корневой дирректории сайта.
    xdebug-phpstorm
  7. Проверяем, что конфиги xDebug  в шторме нормальные.
    xdebug-phpstorm
  8. Теперь шторм знает о php-интепретаторе, расширении xDebug и о том, что проект - это сайт.
    Добавляем возможность отладки в проект.
    xdebug-phpstorm
  9. Есть множество разных отладчиков. Нам нужен отладчик приложения.
    xdebug-phpstorm
  10. Даём какое-нибудь название
    xdebug-phpstorm
  11. Strat URL нужно установить в "/"
    xdebug-phpstorm
  12. Запускаем отладку
    xdebug-phpstorm
  13. Смотрим результат
    xdebug-phpstorm
Profile picture for user KosHta

Константин , ,

Однозначно в закладки, спасибо Максим.

Profile picture for user KosHta

Артём , ,

Есть способ лучше, т.к. недостаток описанного Вами способа в том, что отладка выполняется всегда со StartUrl.

Когда нужно отладить произвольную страницу или внутренний ajax-обработчик удобнее использовать плагин для Chrome, подробнее тут https://wpdevkvk.wordpress.com/2014/12/12/configure-phpstorm-to-debug-php-with-xdebug-and-chrome/ или тут http://xandeadx.ru/blog/raznoe/878.

Если будете настраивать через расширение, то очень рекомендую в настройках Debug выключить оба флажка "Force Break...." иначе PhpStorm будет останавливаться на перовой строке файла, а на только на брейкпойнте.

Profile picture for user mbaev

mbaev , ,

Вы не правы в обоих случаях.

  1. Описанным способом будут отлаживаться все страницы сайта, включая ajax обработчики
  2. PhpStorm не будет останавливаться на перовой строке файла.

Никакие расширения не требуются.

P.S.
В обоих ссылках, которые Вы оставили, настройки "Force break..." тоже включены.