Настройка Xdebug 3 для Laravel и docker в PHPStorm

#php, #debug, #laravel, #настройка, #отладка
Настройка Xdebug 3 для Laravel и docker в PHPStorm

Разберем в статье, как настроить PHPStorm для отладки с помощью Xdebug 3 проекта на Ларавел, запущенного в докере. Важна версия Xdebug! Во второй и третьей версии различное именование параметров для конфигурации Xdebug! Также обращаю внимание, что в качестве веб-сервера в docker используется Apache.

Настройка состоит из нескольких этапов, в каждом из которых может возникнуть ошибка. Поэтому рекомендую делать промежуточные проверки, чтобы в случае необходимости было легче догадаться, где допущена ошибка. Как и когда можно сделать промежуточную проверку также указано в инструкции.

Также обращаю внимание, что настройки производятся в host ОС - Mac OS, для Windows и Linux данный метод не проверялся.

1 Установка Xdebug внутри докера

Для этого надо убедиться, что в файле Dockerfile прописана установка дебаггера (если нет, то нужно добавить):

RUN pecl install xdebug \
    && docker-php-ext-enable xdebug

Также нужно обновить файл docker-compose.yml и добавить переменную в окружение:

- XDEBUG_SESSION=docker-server

Как на скриншоте ниже:

добавляем переменную в окружение

2 Настройка php.ini для отладки

Теперь создадим .ini одноименный с Xdebug: xdebug.ini в корне проекта PHPStorm и замапим его с содержимым контейнера через настройку volumes в конфигурации веб-сервера в файле docker-compose.yml:

- ./xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini

Содержимое файла xdebug.ini:

[xdebug]
xdebug.client_host=host.docker.internal
xdebug.mode=debug

3 Обновляем контейнер

Теперь запускаем обновление контейнера докера, чтобы он установил внутри Xdebug: docker-compose build

И проверяем по логу, что отладчик потавился 3-ей версии:

install ok: channel://pecl.php.net/xdebug-3.0.2

4 Настраиваем PHPStorm для Xdebug внутри Докер

Идем в настройки PHPStorm и выбираем из дерева меню - пункт PHP, для него надо настроить CLI Interpreter. Для этого надо выбрать интерпретатор из нашего докер-контейнера:

Настройка CLI интерпретатора PHP

Как это сделать, показано в видео:

5 Тестируем, что PHPStorm ловит Xdebug

Запускаем докер-контейнер через docker-compose up. Если контейнер уже запущен, то перезагружаем апач, чтобы точно применилась настройки из .ini файла ( заходим внутрь контейнера, к примеру, docker-compose exec web bash, и выполняем service apache2 reload).

Обновляем страницу нашего веб-приложения в браузере и наблюдаем, что сразу же должно появиться входящее подключение в шторме, пример как на скриншоте ниже:

Входящее соединение от Xdebug

6 Настраиваем в PHPStorm IDE key

Теперь для полного счастья нам осталось:

  • добавить в xdebug.ini еще одну настройку, с указанием ide key,
  • добавить PHP сервер в настройки проекта с нужным портом и включенным mapping'ом файлов
  • и создать конфигурацию для Remote Debug.

Смотрим, как это делается в видео ниже:



Обновленный xdebug.ini файл:

[xdebug]
xdebug.client_host=host.docker.internal
xdebug.mode=debug
xdebug.idekey=docker-server

Количество просмотров: 6 671

Поделиться в соцсетях: