Настройка Xdebug в Докер-контейнере для PhpStorm по шагам
Шаг 1:
Установка xdebug в докер.
Как сделать файл настроек Dockerfile здесь.
Добавляем эту строку в Dockerfile.
# Установка php-xdebug RUN pecl install xdebug && docker-php-ext-enable xdebug
Здесь мы используем pecl install xdebug для скачивания расширения php-xdebug, а затем docker-php-ext-enable xdebug для его активации.
Настроить xdebug в файле php.ini. Добавьте следующую инструкцию RUN в Dockerfile, чтобы скопировать настроенный файл xdebug.ini в контейнер.
Вариант с отдельным конфигурационным файлом docker-php-ext-xdebug.ini
# Копирование настроек xdebug в контейнер COPY xdebug.ini /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
Вариант с общим конфигурационным файлом php.ini
COPY ./_docker/app/php.ini /usr/local/etc/php/conf.d/php.ini
В этом файле пишем такие настройки:
zend_extension=xdebug.so xdebug.remote_enable=on xdebug.mode=debug xdebug.client_host=172.17.0.1 xdebug.client_port=9000 xdebug.idekey=my-ide
Шаг 2:
Настройка docker-compose.yml
В сервисе php прописываем секцию "environment":
environment: PHP_XDEBUG: 1 PHP_XDEBUG_MODE: profile,coverage,debug PHP_IDE_CONFIG: serverName=my-ide PHP_XDEBUG_IDEKEY: my-ide PHP_XDEBUG_START_WITH_REQUEST: trigger PHP_XDEBUG_TRIGGER_VALUE: my-ide PHP_XDEBUG_CLIENT_HOST: 172.17.0.1 # Linux PHP_XDEBUG_PROFILER_OUTPUT_NAME: "%t" PHP_XDEBUG_LOG_LEVEL: 0
Шаг 3:
Настройка PhpStorm
CTRL+ALT+S открываем настройки, переходим во вкладку PHP и указываем путь к CLI Interpreter.
Предполагается, что php установлен, не в компьютере а в Докер-контейнере. И CLI Interpreter нужно указать тот, который внутри контейнера.
Нажимаем [...] точки в конце выпадающего списка и создаем новый сервер:
Нажимаем + и выбираем вкладку From Docker:
Не забываем чекбокс переключить на Docker Compose:
И выбираем сервис php. В моем сервис называется php. Имя сервиса можно посмотреть в docker-compose.yml: