在 /etc/apache2/envvars 中创建新变量?

在 /etc/apache2/envvars 中创建新变量?

在 Ubuntu Oneiric 11.10 上,我想我可以聪明地添加

export RAILS_ENV=production

以便/etc/apache2/envvars我可以 DRY Apache 配置。但似乎无法从 httpd.conf 访问它。进一步挖掘后,我开始使用它ErrorLog作为测试,现在我感到很困惑。给出以下几行envvars

export APACHE_RUN_USER=www-data
export APACHE_RUN_NEWVAR=www-newvar

当我这样做时:

ErrorLog ${APACHE_LOG_DIR}/${APACHE_RUN_USER}-error.log

/var/log/apache2/www-data-error.log我得到了一个我期望的文件。但是当我这样做时:

ErrorLog ${APACHE_LOG_DIR}/${APACHE_RUN_NEWVAR}-error.log

我得到的却是/var/log/apache2/${APACHE_RUN_NEWVAR}-error.log

我 grep 了软件包源代码,它APACHE_LOG_DIR没有在任何地方进行硬编码;它不应该是特殊的。那么是什么阻止我使用新创建的变量呢?

答案1

这并不是直接回答问题,而是根据乘客文件,生产是默认环境,因此您不需要此行。(我猜您正在使用乘客)

编辑: 我尝试放入PassEnv APACHE_RUN_NEWVAR我的 vhost 配置文件,它成功了。之前它不起作用。

查看文档

指定一个或多个本机系统环境变量以用作内部环境变量

编辑2: 似乎PassEnv与此无关。当我重新加载配置时,apache2ctl restart新变量未定义,但如果我apache2ctl stop这样做,apache2ctl start它就可以正常工作...

相关内容