Xdebug в связке с PhpStorm + XDebug + Docker
Ожидается, что у вас уже есть проект с настроенным докером.
Идём в:
Settings | PHP | CLI Interpreter | 3 точки справа от него
Файл | Настройки | PHP | 3 точки справа от него
Добавляем такую конфигурацию:
У меня не проходит валидация установленного пхп, но это ни на что не влияет.
Name
может быть любымServer
выбираем тот, который создали шагом ранееConfiguration files
: путь доdocker-compose.yml
Service
: контейнер сPHP
Остальное на ваш вкус, но в графе
Lifecycle
лучше оставитьconnect to existing container
Теперь, в графе CLI интепретатор
вы увидите выбранным только что созданный конфиг:
Идём в:
Run | Edit configurations
Выполнить | Редактировать конфигурацию
Создаём новую конфигурацию на основе PHP Remote Debug
:
Здесь Server
это как раз Name
из пункта #3.
В этом окне Name
может быть любым, надо его запомнить, он, опять же, пригодятся чуть позже.
IDE key
может быть любым, но Если у вас XDebug 3
, то обязательно запоминаем значение.
В контейнере с PHP
для правильной интеграции с XDebug
мы должны иметь доступ к локальной машине, то есть хосту:
extra_hosts:
- "host.docker.internal:host-gateway"
Здесь важна только директива extra_hosts
, она обязательна.
XDebug 3
; функции Xdebug
xdebug.mode=debug
; IP-адрес или имя хоста, к которому Xdebug подключится
xdebug.client_host=host.docker.internal
; порт, к которому Xdebug подключиться
xdebug.client_port=9001
; запускает трассировку функции
xdebug.start_with_request=yes
; название IDE
xdebug.idekey=PHPSTORM
; путь до файла где будут сохранятся логи
xdebug.log="/var/www/html/official/logs/xdebug/xdebug_access.log"
; уровень вывода логов, 10 максимальный
xdebug.log_level=0
; автоматическое определять IP-адрес клиента
xdebug.discover_client_host=true
xdebug.idekey
указываемIDE key
из шага #5xdebug.client_port
порт из пункта #4xdebug.client_host
указываемtrue