我们有 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
(可能无需明确导出即可工作)。