我有一个环境变量,称为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文件?
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] 删除。
我来说两句