@ekangash
Настройка Xdebug 3 в PhpStorm через Docker используя Laravel
24 просмотра
Настройка 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.
PHP language level: указать активную версию php-fpm установленную в контексте докера.
- 2.
CLI Interpreter: Нажать на кнопку ... справа. В появившемся окне выполнить следующие действия:
- •
Для операционных систем на базе Linux выбрать Docker Compose, затем добавить новый сервер Docker в разделе Server(нажав на кнопку New и оставив параметры по умолчанию), а затем выбрать your-php-fpm-docker-server-name в списке служб.
- •
Для операционных систем на базе Windows выберите Docker, затем добавьте новый сервер Docker в разделе Server(нажав на кнопку New и оставив параметры по умолчанию), а затем выбрать your-php-fpm-docker-server-name:latest в списке служб.
- 3.
Добавленному новому CLI Interpreter нужно настроить Path mappings, указав путь файлов приложения в контейнере php-fpm, который должен совпасть с путём который указан в файле конфигурации докера, свойства volume.
Нажать на кнопку добавления нового CLI Interpreter (значок плюса в левом верхнем углу).
В появившемся окне выбрать From Docker, а в открывшемся окне выбрать:
В результате мы должны убедиться в том, что PhpStorm правильно считал версию интерпретатора php и установленного расширения xDebug которые установлены в рамках нашего контейнера.
Шаг 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-приложения!
Авторы документа
Информацию подготовили