无法解析外部 Xdebug 连接的服务器名称
Cannot parse server name for external Xdebug connection
我有一个带有 xdebug 的 Docker 容器,当我 运行 我需要形成 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".
但我已经设置了这些环境变量,您可以在此处的屏幕截图中看到:
这是我 phpinfo()
的 xdebug 部分:
这些是我对 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
来自我的 MacOS 运行ning Docker 和 PhpStorm
的 ifconfig en1 inet
命令的结果
您还可以在需要时查看以下文件:
任何帮助将不胜感激!
更新:
似乎如果我添加
environment:
XDEBUG_CONFIG: "remote_host=192.168.1.110"
PHP_IDE_CONFIG: "serverName=docker-server"
进入我位于 docker-compose.yml 内的 php
服务,它解决了问题,但给我留下了一个大问题。
因为我有:
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"
并且因为它没有被忽略,而且我可以看到那些环境变量甚至在我将 environment
属性 添加到我的 php
服务之前就已设置,为什么 xdebug 仅在以下情况下触发我设置了environment
属性?把它放在两个地方对我来说感觉像是重复,我更喜欢把它放在 ./etc/environment.development.yml
而不是 docker-compose.yml
.
经过更多的挖掘,
我看到了以下区别:
当我使用 env_file
指令时,我的 environment.development
文件中有以下内容:
XDEBUG_CONFIG="remote_host=192.168.1.110"
PHP_IDE_CONFIG="serverName=docker-server"
结果是:
注意值周围的双引号。
当我删除 env_file
指令并放置以下内容时:
environment:
XDEBUG_CONFIG: "remote_host=192.168.1.110"
PHP_IDE_CONFIG: "serverName=docker-server"
然后我在 phpinfo()
中得到了这个:
所以最后我所做的是,我删除了 environment
指令并放回 env_file
指令,在 environment.development
文件中我删除了值周围的双引号,所以现在看起来像这样:
XDEBUG_CONFIG=remote_host=192.168.1.110
PHP_IDE_CONFIG=serverName=docker-server
现在一切正常:)
我在 PhpStorm youtrack 里填了一个bug report
我对双引号有同样的问题,但在 docker-compose 中。第一个版本是错误的,删除双引号解决了它:
environment:
- PHP_IDE_CONFIG="serverName=local"
- PHP_IDE_CONFIG=serverName=local
我有一个带有 xdebug 的 Docker 容器,当我 运行 我需要形成 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".
但我已经设置了这些环境变量,您可以在此处的屏幕截图中看到:
这是我 phpinfo()
的 xdebug 部分:
这些是我对 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
来自我的 MacOS 运行ning Docker 和 PhpStorm
的ifconfig en1 inet
命令的结果
您还可以在需要时查看以下文件:
任何帮助将不胜感激!
更新:
似乎如果我添加
environment:
XDEBUG_CONFIG: "remote_host=192.168.1.110"
PHP_IDE_CONFIG: "serverName=docker-server"
进入我位于 docker-compose.yml 内的 php
服务,它解决了问题,但给我留下了一个大问题。
因为我有:
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"
并且因为它没有被忽略,而且我可以看到那些环境变量甚至在我将 environment
属性 添加到我的 php
服务之前就已设置,为什么 xdebug 仅在以下情况下触发我设置了environment
属性?把它放在两个地方对我来说感觉像是重复,我更喜欢把它放在 ./etc/environment.development.yml
而不是 docker-compose.yml
.
经过更多的挖掘,
我看到了以下区别:
当我使用 env_file
指令时,我的 environment.development
文件中有以下内容:
XDEBUG_CONFIG="remote_host=192.168.1.110"
PHP_IDE_CONFIG="serverName=docker-server"
结果是:
注意值周围的双引号。
当我删除 env_file
指令并放置以下内容时:
environment:
XDEBUG_CONFIG: "remote_host=192.168.1.110"
PHP_IDE_CONFIG: "serverName=docker-server"
然后我在 phpinfo()
中得到了这个:
所以最后我所做的是,我删除了 environment
指令并放回 env_file
指令,在 environment.development
文件中我删除了值周围的双引号,所以现在看起来像这样:
XDEBUG_CONFIG=remote_host=192.168.1.110
PHP_IDE_CONFIG=serverName=docker-server
现在一切正常:)
我在 PhpStorm youtrack 里填了一个bug report
我对双引号有同样的问题,但在 docker-compose 中。第一个版本是错误的,删除双引号解决了它:
environment:
- PHP_IDE_CONFIG="serverName=local"
- PHP_IDE_CONFIG=serverName=local