Настройка xdebug с VS Code при использовании локального сервера на WSL

Важно отметить, что настройки будут отличаться для разных версии xdebug, здесь я даю гайд для версий xdebug 3.x.

Настройка VS Code

Со стороны VS Code нужно установить плагин PHP Debug (Debug support for PHP with Xdebug). Настройки обмена данными с xdebug должны быть записаны в виде json файла в /.vscode/launch.json.

Если у вас его нет, то откройте вкладку Run & Debug (Shift+Ctrl+D) и нажмите на ‘create launch.json file’. IDE создаст типовой файл настроек.

В нем у вас будет секция вроде следующей:

Здесь указано, что VS Code будет слушать 9003 порт, ожидая указаний от xdebug. Не лишним будет добавить еще один параметр — pathMappings, чтобы связать файлы, открытые в IDE, и файлы, лежащие на сервере (это могут быть даже одни и те же файлы, но меппинг необходим, чтобы перевести данные, поступившие со стороны xdebug).

Здесь идут пары [ключ: значение], где ключ — имя директории на сервере, а значение — локальный путь для IDE. Используете $workspaceFolder, предоставляемый IDE, для вычисления пути относительно корня проекта.

Настройка PHP/Xdebug

Я делал настройку для php7.4-fpm / nginx. PHP у вас уже должен быть установлен, добавьте xdebug. Штатно это выполняется командой:

Настройки модуля xdebug находятся в /etc/php/7.4/mods-available/xdebug.ini

Важно правильно указать параметр client_host. Хочется задать его 127.0.0.1, т.к. IDE и WSL работают на одной и той же машине. Но тогда данные будут отправляться не родительскому хосту, а WSL, и VS Code не получит данных. Здесь требуется указать сетевой адрес хоста машины, обычно это что то типа 192.168.1.xx.

Порт может быть произвольным, главное чтобы он не был занят чем то ещё. Штатное значение для xdebug v 3.x — 9003.

Перезапустите php-fpm.

Запуск отладки

Осталось только запустить отладку в VS Code. Во вкладке ‘Run and Debug’ у вас будет сформирован список отладок. Выберите опцию ‘Listen for Xdebug’, для которой мы настроили ранее меппинг, и запустите прослушивание дебаггера.

VS Code начнет слушать указанный вами порт, осталось только поставить точки остановки в скриптах и запустить в браузере нужную страницу с вашего WSL сервера.

Удачной отладки! :)

Написать комментарий

Мало букафф? Читайте есчо !

Перенос Ubuntu WSL на другой диск

Март 6, 2022 г.

В WIN 10 возможно установить в качестве подсистемы Linux - Ubuntu. Установка доступна в Microsoft Shop, и в настоящий момент на выбор имеются 18я и 20я ...

Читать

Как смонтировать папку из WSL образа

Июль 21, 2023 г.

В WSL обычно уже смонтированы все диски системы в папке /mnt, и вы легко получаете нужные файлы из родительской системы windows, хотелось бы иметь и обратную возможность. Рассмотрим как выполнить монтирование файлов wsl в файловую систему windows. ...

Читать

 

Комментарии к «Настройка xdebug с VS Code при использовании локального сервера на WSL»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: