无法解析外部Xdebug连接的服务器名称

pan*_*sru 3 xdebug phpstorm

我有一个带有xdebug的Docker容器,当我运行脚本时,我需要形成我从PhpStorm收到的Docker容器,消息如下:

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".
Run Code Online (Sandbox Code Playgroud)

但我已经设置了这些环境变量,如下面的屏幕截图所示:

在此输入图像描述

xdebug.log

这是我的xdebug部分phpinfo(): 在此输入图像描述 在此输入图像描述

这些是我对PhpStorm的设置:

在此输入图像描述

在此输入图像描述

环境来自phpinfo():

在此输入图像描述

PHP变量来自phpinfo():

在此输入图像描述 在此输入图像描述 在此输入图像描述

我也尝试export用带引号和不带引号的env变量,但结果是一样的......

报价:

XDEBUG_CONFIG="remote_host=192.168.1.110"
PHP_IDE_CONFIG="serverName=docker-server"
Run Code Online (Sandbox Code Playgroud)

没有引号:

XDEBUG_CONFIG=remote_host=192.168.1.110
PHP_IDE_CONFIG=serverName=docker-server
Run Code Online (Sandbox Code Playgroud)

ifconfig en1 inet来自我的MacOS命令的结果,我正在运行Docker和PhpStorm

在此输入图像描述

您还可以在需要的情况下检查以下文件:

任何帮助都感激不尽!

更新:

似乎如果我添加

environment:
  XDEBUG_CONFIG: "remote_host=192.168.1.110"
  PHP_IDE_CONFIG: "serverName=docker-server"
Run Code Online (Sandbox Code Playgroud)

进入我php位于docker-compose.yml内的服务,它解决了这个问题,但给我留下了一个很大的问题.

因为我有:

env_file:
  - ./etc/environment.yml
  - ./etc/environment.development.yml
Run Code Online (Sandbox Code Playgroud)

在里面,./etc/environment.development.yml我有:

XDEBUG_CONFIG="remote_host=192.168.1.110"
PHP_IDE_CONFIG="serverName=docker-server"
Run Code Online (Sandbox Code Playgroud)

并且由于它没有被忽略,我可以看到甚至在我将environment属性添加到我的php服务之前设置了那些Env变量,为什么xdebug仅在我设置environment属性时被触发?我觉得在两个地方都有重复,我更喜欢把它放在里面./etc/environment.development.yml而不是docker-compose.yml.

pan*_*sru 10

经过一番挖掘,

我看到了以下不同之处:

当我使用env_file指令时,我的environment.development文件中包含以下内容:

XDEBUG_CONFIG="remote_host=192.168.1.110"
PHP_IDE_CONFIG="serverName=docker-server"
Run Code Online (Sandbox Code Playgroud)

结果导致: 在此输入图像描述

注意值周围的双引号.

当我删除env_file指令并把以下内容:

environment:
  XDEBUG_CONFIG: "remote_host=192.168.1.110"
  PHP_IDE_CONFIG: "serverName=docker-server"
Run Code Online (Sandbox Code Playgroud)

然后我有这个phpinfo(): 在此输入图像描述

所以最后我做了什么,我删除了environment指令并放回env_file指令和内部environment.development文件,我删除了值周围的双引号,所以现在它看起来像这样:

XDEBUG_CONFIG=remote_host=192.168.1.110
PHP_IDE_CONFIG=serverName=docker-server
Run Code Online (Sandbox Code Playgroud)

现在它工作正常:)

我填写了PhpStorm youtrack中的错误报告.