如何在Apache Vhost中使用环境变量

工艺

我有一个环境变量,称为DISTANT_APP_ADDR

$ echo $DISTANT_APP_ADDR
$ 172.17.0.102

我想在我的虚拟主机中使用此变量,所以我在/etc/apache2/envvars文件中添加了

export DISTANT_APP_ADDR=${DISTANT_APP_ADDR}

在我的虚拟主机中:

FastCgiExternalServer /var/www/cgi-bin/php5.external -host ${DISTANT_APP_ADDR}:9000

但是当我重新启动apache时,出现了错误:

$ service apache2 restart
$ FastCgiExternalServer /var/www/cgi-bin/php5.external: failed to resolve "" to exactly one IP address

通过用${DISTANT_APP_ADDR}实际值替换envvars文件,它可以正常工作。

我还必须PassEnv DISTANT_APP_ADDR在我的vhost文件中放一个,但是结果是一样的。

如何将环境变量传递给我的vhost文件?

贡特拉姆·布洛姆(Guntram Blohm)
export DISTANT_APP_ADDR=${DISTANT_APP_ADDR}

废话 如果已经设置了DISTANT_APP_ADDR,并且没有设置,它什么都不做-它怎么知道要设置什么?

您也不希望启动脚本提取环境变量。假设您或其他人一次重新启动了apachectl,而您却忘记了30分钟前出于某种原因更改了env变量。这是管理员的噩梦-您的Web应用“突然”停止运行,但是任何配置文件都没有更改。要找出问题所在,将非常非常困难。

因此,请务必将DISTANT_APP_ADDR设置为常数。或在httpd.conf或某些vhost配置文件中使用SetEnv指令。但是,永远不要让服务器服务依赖于用户启动服务时碰巧遇到的环境。(并且,当系统启动并启动apache时,启动代码不知道您还是在.profile中设置了变量)。

如果您真的想射中自己的脚,请添加

echo "DISTANT_APP_ADDR='$DISTANT_APP_ADDR'" > /tmp/apachefile

到.profile的末尾,并将该文件包含到您的envvars文件中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章