11

我有一个带有 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".

但我已经设置了这些环境变量,如您在此处的屏幕截图中所见:

在此处输入图像描述

xdebug.log

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

这些是我对 PhpStorm 的设置:

在此处输入图像描述

在此处输入图像描述

环境来自phpinfo()

在此处输入图像描述

PHP 变量来自phpinfo()

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

我也尝试export使用和不使用引号来环境变量,但结果是一样的......

带引号:

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我运行 Docker 和 PhpStorm 的 MacOS 命令的结果

在此处输入图像描述

您还可以在需要时检查以下文件:

任何帮助都感激不尽!

更新:

似乎如果我添加

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.

4

2 回答 2

26

经过一番挖掘,

我看到了以下区别:

当我使用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 中填写了一份错误报告。

于 2018-05-04T13:28:10.673 回答
1

我在使用双引号时遇到了同样的问题,但在 docker-compose 中。第一个版本是错误的,删除双引号解决了它:

    environment:
      - PHP_IDE_CONFIG="serverName=local"
      - PHP_IDE_CONFIG=serverName=local
于 2021-09-01T18:42:06.550 回答