Настройка Xdebug 3 в PhpStorm через Docker используя Laravel

Подробное руководство по настройке Xdebug в PhpStorm с использованием Docker. Узнайте, как правильно настроить Xdebug для отладки PHP-приложений.

24 просмотра

Настройка Xdebug 3 в PhpStorm через Docker используя Laravel
Шаг 1: Проверить, работу самого Docker в рамках PhpStorm
Шаг 2: Добавление нового сервера php в PhpStorm
Шаг 3: Настройка отладчика xDebug в PhpStorm
Шаг 4: Настройка интерпретатора из контекста контейнера в PhpStorm
Шаг 5: Запуск и проверка
Частые проблемы и их решения
Примечание настроенного Laravel приложения:
Заключение

Настройка Xdebug в PhpStorm может показаться сложной задачей, особенно если вы используете Docker. В этом руководстве мы рассмотрим все шаги, чтобы помочь вам настроить Xdebug с Docker и интегрировать его с PhpStorm для отладки PHP-приложений. Мы также обсудим важные моменты, такие как настройка xdebug 3, использование host.docker.internal и многое другое.

Для начала процесса настройки приложения необходимо создать два конфигурационных файла: docker-compose.yaml и Dockerfile.

В данном руководстве предоставляется пример настройки приложения Laravel 8.x с использованием Docker. В этом контексте уже выполнены следующие шаги: установка xDebug и настройка проксирования контейнера nginx на сервис php-fpm. Вы можете ознакомиться с подробным примером настройки по ссылке: https://github.com/ekangash/laravel-quick-start

Шаг 1: Проверить, работу самого Docker в рамках PhpStorm

Перейти в меню на вкладку File -> Settings -> Build, Execution, Deployment -> Docker, нажать + в левом верхнем углу окна настроек и убедится, что PhpStorm успешно установил соединение с Docker-контейнером на локальном хосте.

В самом низу вкладки должно отобразиться сообщение Connection successful, это значит, что соединение установлено и все работает стабильно.

Шаг 2: Добавление нового сервера php в PhpStorm

Перейти в меню на вкладку File -> Settings -> PHP -> Servers. Чтобы добавить новый сервер, необходимо использовать кнопку + (Add insert) в открытом интерфейсе, указать следующие параметры:

  • Name: это значение переменной окружения, она указывается в файле конфигурации docker-compose.yaml у сервиса php-fpm и выглядит следующим образом PHP_IDE_CONFIG: "serverName=${APP_NAME}".

  • Host: внешний хост приложения, на котором запущено приложение, обычно это localhost.

  • Port: внешний порт контейнера nginx, на котором монтируется приложение.

Установить галочку Use path mappings. В интерфейсе окна добавить локальный путь до приложения path to app и настроить Absolute path on the server на путь до корневого каталога в контексте контейнера, например в указанном примере это /var/www/.

Шаг 3: Настройка отладчика xDebug в PhpStorm

Для оптимизации настроек отладки в PHPStorm необходимо: 1. Перейти в меню "File" -> "Settings" -> "PHP" -> "Debug". 2. Снять галочки со всех опций "Force break at first line when...".

Эти опции могут вызывать ненужные остановки отладки, что снижает эффективность.

Шаг 4: Настройка интерпретатора из контекста контейнера в PhpStorm

Перейти в меню на вкладку File -> Settings -> PHP и заполнить следующие поля:

  1. 1.

    PHP language level: указать активную версию php-fpm установленную в контексте докера.

  2. 2.

    CLI Interpreter: Нажать на кнопку ... справа. В появившемся окне выполнить следующие действия:

  3. Нажать на кнопку добавления нового CLI Interpreter (значок плюса в левом верхнем углу).

    В появившемся окне выбрать From Docker, а в открывшемся окне выбрать:

    • Для операционных систем на базе Linux выбрать Docker Compose, затем добавить новый сервер Docker в разделе Server(нажав на кнопку New и оставив параметры по умолчанию), а затем выбрать your-php-fpm-docker-server-name в списке служб.

    • Для операционных систем на базе Windows выберите Docker, затем добавьте новый сервер Docker в разделе Server(нажав на кнопку New и оставив параметры по умолчанию), а затем выбрать your-php-fpm-docker-server-name:latest в списке служб.

    В результате мы должны убедиться в том, что PhpStorm правильно считал версию интерпретатора php и установленного расширения xDebug которые установлены в рамках нашего контейнера.

  4. 3.

    Добавленному новому CLI Interpreter нужно настроить Path mappings, указав путь файлов приложения в контейнере php-fpm, который должен совпасть с путём который указан в файле конфигурации докера, свойства volume.

Шаг 5: Запуск и проверка

Для запуска отладки необходимо создать конфигурацию запуска в PhpStorm. Перейдите в Run | Edit Configurations, добавьте новую конфигурацию PHP Remote Debug и укажите параметры:

  • Name: Название конфигурации

  • Server: Ваш сервер Docker

  • IDE key: PHPSTORM

Запустите вашу конфигурацию и убедитесь, что отладка работает. Вы можете поставить брекпоинт в вашем коде и проверить, останавливается ли выполнение в этом месте.

Частые проблемы и их решения

Иногда возникают проблемы с настройкой xdebug client host docker. Убедитесь, что ваш контейнер Docker может видеть хост, используя host.docker.internal. Если это не помогает, попробуйте использовать IP-адрес вашей машины.

Для отладки php xdebug настройка также важен правильный порт. Если порт 9003 уже занят, выберите другой порт и обновите конфигурации.

Примечание настроенного Laravel приложения:

В конце проделанных действий необходимо перезапустить Docker контейнеры.

Чтобы проверить результаты, нужно поставить точку остановки в точке входа приложения, в примере можно в файле bootstrap/app.php, включить режим отладки (иконка телефона в верхнем правом углу) и перейти в браузере по адресу http://localhost:{APP_PORT}. В PhpStorm должна открыться панель отладки.

https://www.youtube.com/embed/5QrdFpxbkzA?si=DCB3rWLgWTshnYzx

Заключение

Настройка Xdebug в PhpStorm с использованием Docker требует некоторых усилий, но при правильном подходе это становится достаточно простым процессом. Следуя этим шагам, вы сможете легко настроить docker xdebug phpstorm и использовать мощные возможности отладки вашего кода. Docker xdebug 3 позволяет использовать новейшие функции Xdebug и значительно улучшает процесс отладки. Удачи в разработке и отладке вашего PHP-приложения!

Был ли этот материал полезен?

Авторы документа

Информацию подготовили