Соединение xdebug отказано в Docker контейнере - PullRequest
2 голосов
/ 27 апреля 2020

ошибка:

2020/04/26 23:43:48 [error] 8#8: *2 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.208.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://192.168.208.3:9000", host: "127.0.0.1", referrer: "http://127.0.0.1/"

Невозможно установить соединение с xdebug. Docker конфигурация была взята отсюда https://gitlab.com/martinpham/symfony-5-docker/-/tree/master/docker

xdebug был установлен отдельно и распознается IDE.

Также добавлено это в docker -compose.yml в среде php -fpm:

environment:
- XDEBUG_CONFIG:remote_host=host.docker.internal remote_enable=1 remote_autostart=off xdebug.idekey=PHPSTORM

Что еще нужно добавить / изменить?

1 Ответ

2 голосов
/ 02 мая 2020

Так я недавно установил docker + php + xdebug для http-сервисов. Я провел через него своих сверстников, и это сработало безупречно.

1. Добавьте ENV PHP_IDE_CONFIG в конфигурацию пула docker fpm

Эту среду необходимо добавить в конфигурацию пула php fpm. Это может быть www.conf (в качестве примера)

env[PHP_IDE_CONFIG] = "serverName=localhost"

2. Добавьте xdebug.ini в ваш docker контейнер

. Вот пример xdebug.ini, который я использовал для настройки:

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = off
xdebug.remote_host = host.docker.internal
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.max_nesting_level = 1500

3. [IntelliJ IDEA или PHPStorm] - Настройка PHP серверов

  1. Открыть Preferences
  2. Go до Languages & Frameworks -> PHP -> Servers
  3. Установить Имя на localhost (Это важно и должно соответствовать PHP_IDE_CONFIG значению)
  4. Установить Host на localhost
  5. Включить use path mappings
  6. Сопоставить путь вашего проекта root с рабочим каталогом docker (например, /var/www/html), чтобы IntelliJ мог правильно сопоставить пути.

4. [IntelliJ IDEA или PHPStorm] - Настройка IDE ключ

  1. Открыть Preferences
  2. Go до Languages & Frameworks -> PHP -> Debug -> DGBp proxy
  3. Установите клавишу IDE на PHPSTORM

5. Добавьте XDEBUG_SESSION = PHPSTORM к вашему URL / повару ie ..

Наконец:

  • добавьте ?XDEBUG_SESSION=PHPSTORM к вашему URL или
  • добавьте повара ie с именем XDBEUG_SESSION и значением PHPSTORM
...