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

Phpstorm 无法分析外部Xdebug连接的服务器名称,phpstorm,xdebug,Phpstorm,Xdebug,我有一个包含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

我有一个包含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()
的环境:

来自
phpinfo()
的PHP变量:

我还尝试导出带引号和不带引号的环境变量,但结果是一样的

加上引号:

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
运行Docker和PhpStorm的MacOS中的
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
服务之前就已经设置好了,为什么只有在我设置了
environment
属性之后才会触发xdebug呢?对我来说,在这两个地方都有它就像是复制品,我更喜欢在
/etc/environment.development.yml
中有它,而不是
docker compose.yml

经过更多的挖掘

我看到了以下区别:

当我使用
env_文件
指令时,我的
环境.开发
文件中有以下内容:

XDEBUG_CONFIG="remote_host=192.168.1.110"
PHP_IDE_CONFIG="serverName=docker-server"
这导致:

请注意该值周围的双引号

当我删除
env_文件
指令并放置以下内容时:

environment:
  XDEBUG_CONFIG: "remote_host=192.168.1.110"
  PHP_IDE_CONFIG: "serverName=docker-server"
然后我在
phpinfo()
中看到了这个:

最后,我删除了
environment
指令,并将
env_文件
指令放回
environment.development
文件中,我删除了值周围的双引号,现在看起来是这样的:

XDEBUG_CONFIG=remote_host=192.168.1.110
PHP_IDE_CONFIG=serverName=docker-server
现在它工作正常:)


我填写了一份PhpStorm youtrack。

1)您的计算机上真的运行了DBGp代理吗?它根本不需要,特别是对本地码头工人来说。。。您可能已经对其进行了配置。。但是你真的用它吗?您是否实际安装了它等。如果您不知道它是如何工作的,最好不要触摸它。2) 您使用的是什么web服务器?nginx我想。。。如果是这样,请尝试在那里配置服务器名称3)“我还尝试导出带引号和不带引号的环境变量,但结果是相同的…”必须是带引号的。4)完整的
phpinfo()
输出是什么?我只关注服务器/环境部分——需要检查服务器名称是否可见。5) 到目前为止,xdebug日志说它连接到某个IDE,很可能是PhpStorm。。。所以总的来说是好的。。就剩下那部分了。如果我真的运行了DBGp代理,你到底是什么意思?这是PhpStorm中的一个设置,据我所知,为了调试远程php服务器,您需要这个设置。我尝试使用双引号和不使用双引号的原因都是因为bug。我熟悉远程调试,我做过很多次,但我现在正在测试docker,想完全切换docker,而远程调试对我来说可行,但任何地方都不能使用我的docker实例。@LazyOne我更新了我的原始帖子,以包括环境和PHP变量部分。我觉得一切都很好。问题是xdebug连接到PhpStorm,但PhpStorm抱怨“无法解析外部xdebug连接的服务器名称。”1“如果我真的运行了DBGp代理,您的确切意思是什么?这是PhpStorm内部的一个设置,据我所知,您需要它来调试远程php服务器。”这意味着您不知道它是如何工作的以及何时需要它。不要使用它,因为你不需要它。如果您想知道什么时候可以使用它,请参阅:为了完成此操作,您可以在CLI interperter的配置中直接在PHPStorm中设置此env变量。请注意删除双引号。谢谢您与up分享。对我来说,只是把'environment:-PHP\u IDE\u CONFIG=serverName=docker server'放进去做了修复。您并不需要env_文件,只需删除引号即可。