作者:敖军士 | 来源:互联网 | 2022-12-18 16:34
我有一个带有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
用带引号和不带引号的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
ifconfig en1 inet
来自我的MacOS命令的结果,我正在运行Docker和PhpStorm
您还可以在需要的情况下检查以下文件:
Dockerfile.development
泊坞窗,compose.yml
environment.development
php.ini中
任何帮助都感激不尽!
更新:
似乎如果我添加
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"
并且由于它没有被忽略,我可以看到甚至在我将environment
属性添加到我的php
服务之前设置了那些Env变量,为什么xdebug仅在我设置environment
属性时被触发?我觉得在两个地方都有重复,我更喜欢把它放在里面./etc/environment.development.yml
而不是docker-compose.yml
.
1> panosru..:
经过一番挖掘,
我看到了以下不同之处:
当我使用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中的错误报告.