Не удается разобрать имя сервера для внешнего подключения Xdebug - PullRequest
0 голосов
/ 03 мая 2018

У меня есть контейнер Docker с xdebug в нем, когда я запускаю скрипт, мне нужно сформировать контейнер Docker, который я получаю от PhpStorm следующее сообщение:

Cannot parse server name for external Xdebug connection.
To fix it create environment variable PHP_IDE_CONFIG on the remote server.
Windows: set PHP_IDE_CONFIG="serverName=SomeName"
Linux / Mac OS X: export PHP_IDE_CONFIG="serverName=SomeName".

но я уже установил эти переменные окружения, как вы можете видеть на скриншоте здесь:

enter image description here

xdebug.log

Вот раздел xdebug из моего phpinfo(): enter image description here enter image description here

А это мои настройки для PhpStorm:

enter image description here

enter image description here

Среда от phpinfo():

enter image description here

Переменные PHP от phpinfo():

enter image description here enter image description here enter image description here

Я также пытался export env переменные с кавычками и без, но результат был тот же ...

С цитатами:

XDEBUG_CONFIG="remote_host=192.168.1.110"
PHP_IDE_CONFIG="serverName=docker-server"

Без кавычек:

XDEBUG_CONFIG=remote_host=192.168.1.110
PHP_IDE_CONFIG=serverName=docker-server

Результат команды ifconfig en1 inet из моего MacOS, где я использую Docker и PhpStorm

enter image description here

Вы также можете проверить следующие файлы в необходимых случаях:

Любая помощь будет высоко ценится!

Обновление:

Кажется, что если я добавлю

environment:
  XDEBUG_CONFIG: "remote_host=192.168.1.110"
  PHP_IDE_CONFIG: "serverName=docker-server"

в мой php сервис, расположенный внутри docker-compose.yml, это решает проблему, но оставляет меня с большим вопросом.

Так как у меня есть:

env_file:
  - ./etc/environment.yml
  - ./etc/environment.development.yml

и внутри ./etc/environment.development.yml У меня есть:

XDEBUG_CONFIG="remote_host=192.168.1.110"
PHP_IDE_CONFIG="serverName=docker-server"

И поскольку это не игнорируется, и я вижу, что эти переменные Env установлены еще до того, как я добавлю свойство environment в мою службу php, почему xdebug запускается только тогда, когда я установил свойство environment? Мне кажется, что дублирование у меня есть в обоих местах, и я предпочитаю, чтобы оно было внутри ./etc/environment.development.yml, а не docker-compose.yml.

1 Ответ

0 голосов
/ 04 мая 2018

После еще нескольких копаний,

Я увидел следующую разницу:

Когда я использую директиву env_file, в моем файле environment.development было следующее:

XDEBUG_CONFIG="remote_host=192.168.1.110"
PHP_IDE_CONFIG="serverName=docker-server"

, что привело к: enter image description here

Обратите внимание на двойные кавычки вокруг значения.

Когда я удалял директиву env_file и ставил следующее:

environment:
  XDEBUG_CONFIG: "remote_host=192.168.1.110"
  PHP_IDE_CONFIG: "serverName=docker-server"

Тогда у меня было это в phpinfo(): enter image description here

Итак, в итоге я удалил директиву environment и вернул директиву env_file, а внутри файла environment.development удалил двойные кавычки вокруг значения, так что теперь это выглядит так:

XDEBUG_CONFIG=remote_host=192.168.1.110
PHP_IDE_CONFIG=serverName=docker-server

А теперь работает нормально :)

Я заполнил отчет об ошибке в вашем треке PhpStorm.

...