我开始问这个问题在 /etc/apache2/envvars 中创建新变量?。我试图通过声明一些特定于服务器的变量/etc/apache2/envvars
然后在我的中使用它们来使我的 Apache 配置变得 DRY httpd.conf
,但是在让 Apache 识别新变量时遇到了问题。
正如 @ouranos 发现的那样,我可以用来PassEnv
声明新变量..但只能声明一个新变量:RAILS_ENV
。请观看:
/etc/apache2/环境变量:
export RAILS_ENV=production
export OUR_HOST_NAME='web.production.example.com'
/etc/apache2/sites-enabled/示例:
PassEnv OUR_HOST_NAME RAILS_ENV
ErrorLog ${APACHE_LOG_DIR}/${OUR_HOST_NAME}-error.log
CustomLog ${APACHE_LOG_DIR}/${RAILS_ENV}-access.log combined
ls -1 /var/log/apache2*-*:
${OUR_HOST_NAME}-error.log
production-access.log
什么?交换两个变量的顺序PassEnv
也没有任何效果。
答案1
正如所说其他问题您可能必须apache2ctl stop && apache2ctl start
这样做apache2ctl restart
,因为似乎没有读取envvars
文件中的更改。