我有一个带有 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".
但我已经设置了这些环境变量,如您在此处的屏幕截图中所见:
这些是我对 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
.