【发布时间】:2021-08-15 17:00:58
【问题描述】:
我正在解决 Xdebug 问题: 由于某种原因,当我使用我的环境时,IP 地址后面会添加一个空格。变量。
这是我的 Xdebug 配置的样子:
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=${PUBLIC_HOST_IP}
xdebug.log=/tmp/xdebug.log
xdebug.idekey=VSCODE
在我的浏览器 php 信息文件中看起来不错:
但在我的调试日志中显示:
WARN: Creating socket for '10.44.9.72 :9003', getaddrinfo: Invalid argument.
当我直接将 IP 添加到配置中时,Xdebug 工作正常,所以问题来自环境变量的使用。 我也已经通过替换发送了:
PUBLIC_HOST_IP=$(hostname -I)
export PUBLIC_HOST_IP=$(echo "${PUBLIC_HOST_IP}" | tr -d '[:space:]')
但现在没有任何运气......
当我在配置后面添加“1”时,空白也会出现在 info php 中。
xdebug.client_host=${PUBLIC_HOST_IP}1
包装也没有帮助:xdebug.client_host="${PUBLIC_HOST_IP}"
当我将变量写入文本文件时:
echo $PUBLIC_HOST_IP >> test.txt
ip 末尾不添加空格。 任何线索如何摆脱那个空白?
【问题讨论】:
-
什么在生成 xdebug 配置,或者更具体地说,是什么在转换环境变量? (我不熟悉在那里使用变量,所以如果可能的话,这对我来说是新的。)这是 Docker 吗?
-
正常环境。变量可以简单地在 php 配置文件中使用:php.net/manual/de/configuration.file.php
-
你确定不是换行,而是空格?如果你这样做
xdebug_var_dump(ini_set('xdebug.client_host'));会发生什么? -
@Basti 一定是错字。我敢打赌,德里克打算改写
ini_get(这在这里更有意义/基于需要检查的内容)。 -
这确实更有意义 :-) 我得到的是:
string(10) "10.44.9.72"