微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

enter image description here

xdebug.log

这是我的PHPinfo()的xdebug部分:

enter image description here


enter image description here

这些是我对PHPStorm的设置:

enter image description here

enter image description here

来自PHPinfo()的环境:

enter image description here

来自PHPinfo()的PHP变量:

enter image description here


enter image description here


enter image description here

我也尝试使用和不使用引号导出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的ifconfig en1 inet命令的结果,我正在运行Docker和PHPStorm

enter image description here

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

> Dockerfile.development
> docker-compose.yml
> environment.development
> php.ini

任何帮助都感激不尽!

更新:

似乎如果我添加

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"

并且由于它没有被忽略,我可以看到甚至在我将环境属性添加到我的PHP服务之前设置了那些Env变量,为什么xdebug仅在我设置环境属性时被触发?我觉得在两个地方都有重复,我更喜欢把它放在./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"

结果导致:

enter image description here

注意值周围的双引号.

当我删除env_file指令并放入以下内容时:

environment:
  XDEBUG_CONfig: "remote_host=192.168.1.110"
  PHP_IDE_CONfig: "serverName=docker-server"

然后我在PHPinfo()中有这个:

enter image description here

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

XDEBUG_CONfig=remote_host=192.168.1.110
PHP_IDE_CONfig=serverName=docker-server

现在它工作正常:)

我在PHPStorm youtrack填写了bug report.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐