在 Apache 加载之前设置服务器变量

在 Apache 加载之前设置服务器变量

我们有 CentOS,上面运行着 Apache。基本上,我在 /etc/environment 中有一些变量,它们使用 PassEnv 传递到我们的 Apache 配置中。问题是,由于 Apache 位于 /etc/environment 之前,因此找不到变量。

是否存在类似的 /etc/environment 文件,我可以在其中添加在 apache(httpd)之前执行的全局环境变量,还是我必须开始编辑运行级别?

亲切的问候,

史蒂夫

答案1

使用“/etc/sysconfig/httpd”设置Apache环境。

答案2

如果这些是适用于系统上每个用户的变量,那么应该将它们添加到 /etc/enviornment 中 - 但 IIRC 此文件并未被 init 脚本明确解析。

因此你需要在 /etc/rc.d/init.d/functions 中添加一行,例如

# -*-Shell-script-*-
#
# functions     This file contains functions to be used by most or all
#               shell scripts in the /etc/init.d directory.
# 
# amended to set env vars

TEXTDOMAIN=initscripts

. /etc/environment

但是如果你只希望这些变量可用于 Web 服务器,那么它们应该在 /etc/sysconfig/httpd 中声明,例如

# Configuration file for the httpd service.

export MYSQL_USER = mydbuser

(可能无需明确导出即可工作)。

相关内容