Каждый раз когда нужно заняться качественным дебагом, каждый раз вспоминаю, как настроить xdebug. Но в этот раз нужно было настроить его через «внешний» интерпретатор PHP, который находился внутри контейнера Docker.
Контейнер был собран на образе PHP в моем случае был взят образ:
FROM php:7.4.14-apache
А сам xdebug был установлен таким образом:
RUN pecl install xdebug \ && docker-php-ext-enable xdebug \ && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ && echo "xdebug.remote_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
В том числе, нужно было настроить PhpStorm так, чтобы он знал к какому интерпретатору обратиться за данными, который xdebug собрал.
Напомню — он в этом случае не локально, на компьютере, а в Docker контейнере. Поэтому была взята за основу статья, подключение сервера Docker к PhpStorm и настройка интерпретатора PHP через Docker
В множестве статей с примерами, вне пространства jetbrains.com можно запутаться, т.к авторы иногда забывают указать свою среду разработки, например, на какой операционной системе они все это настраивали.
В моём случае это Windows 10, Docker desktop 3.5.0 версии.
Далее, после того как PhpStorm знает, где интерпретатор (в контейнере) Docker-а, можно двигаться дальше, например настройки в
docker-compose.yml относительно сервиса, в котором работает веб-сервер и PHP дополнительно, добавлена директива:
extra_hosts: - "host.docker.internal:host-gateway"
а в настройках php.ini
[Xdebug] xdebug.mode=debug xdebug.start_with_request = yes xdebug.client_host=host.docker.internal xdebug.client_port=9005 xdebug.idekey="PHPSTORM" xdebug.discover_client_host = 1
И соответственно порт 9005, или какой-нибудь другой (произвольный, свободный) должен совпадать с настройками, Debug в PhpStorm.
скажу что все бы сказали прочитав твою статью — НИ ОЧЕМ! ни настройки ни phpstrom конфиги не показал ни как подключить контейнер — вода!
Так это заметки для автора, а не статья для кого-то.
Но кто-то кроме вас может ещё разобраться.
Поэтому, сильно не утруждайте себя в оценке статьи.
а мне помогло — хотя бы из-за ссылок на подключение докера к шторму