У меня есть контейнер 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".
но я уже установил эти переменные окружения, как вы можете видеть на скриншоте здесь:
xdebug.log
Вот раздел xdebug из моего phpinfo()
:
А это мои настройки для PhpStorm:
Среда от phpinfo()
:
Переменные PHP от phpinfo()
:
Я также пытался 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
Вы также можете проверить следующие файлы в необходимых случаях:
Любая помощь будет высоко ценится!
Обновление:
Кажется, что если я добавлю
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
.