我正在尝试在我的 Ubuntu 机器中设置环境变量。现在我做了一些研究并尝试了这个问题的方法在Ubuntu中设置环境变量
类似的问题,但问题是我已经编写了“etc/enviroment”、“etc/profile”和“etc/bash.bashrc”文件以包含我的变量:
JAVA_HOME=/home/glv/information/jdk1.6.0_25/
export JAVA_HOME
BASEDIR=/home/glv/apache-tomcat-6.0.29/
export BASEDIR
然而问题是,当我在 apache 上运行startup.sh时,它仍然说 BASEDIR 环境变量设置不正确,而且据我所知,JAVA_HOME 可能也不正确。我正在使用最新的 Ubuntu,不确定这是否有问题,或者我是否必须采取其他方法来解决它。任何帮助,将不胜感激。
答案1
Apache 在 Ubuntu 中是通过使用 Apache 初始化脚本(位于/etc/init.d/apache2
.当您使用以下命令启动和停止 Apache 时,将运行此脚本:-
> sudo service apache2 [start|stop|restart|graceful|etc...]
如果您查看此 init 脚本,您将看到通过首先从文件中读取环境变量来设置和修改环境/etc/apache2/envvars
。这个单独的环境很重要,因为 Apache 的服务器进程是 seteuid 可执行文件,这意味着可以使用“有效用户 ID”运行。在我的 Ubuntu 机器上,Apache 进程以用户名“www-data”运行,即使 root 用户启动该进程也是如此。由于这是一个“系统帐户”,因此它没有默认的 shell 或 bash 环境,并且不使用任何设置用户环境的文件。
所以我认为你想要做的是将这些环境变量放入/etc/apache2/envvars
.
更新:
Ubuntu 上的 Apache 有许多 .conf 文件(在 /etc/apache2/ 和子目录中),也可用于修改正在运行的 Apache 环境。配置文件按顺序解析,并全部包含在主配置文件中:/etc/apache2/apache2.conf
.
在这些conf文件中,您可以使用设置环境来修改环境。然后你就会确定这个环境是你想要的。例如,您可以将其添加到/etc/apache2/httpd.conf
:-
SetEnv JAVA_HOME /home/glv/information/jdk1.6.0_25/