为什么我在我的 shell 中看不到 apache 的环境变量?

为什么我在我的 shell 中看不到 apache 的环境变量?

我在 Debian 8 笔记本电脑上运行 apache。我没有进行任何配置更改,因此一切都保持默认状态。

apache2.conf 使用 /etc/apache2/envvars 中定义的环境变量,但是当我在笔记本电脑上打开 shell 并运行 printenv 时,我没有看到 envvars 中定义的任何变量。

它们是否在不同的环境中运行?为什么我看不到它们?

Apache 文档关于 apache 环境变量,没有提及环境变量,所以我假设那里定义的变量是操作系统环境变量,而不是 apache 特定的机制。

答案1

他们是在不同的环境中运行吗?

是的。

环境变量不是适用于机器上运行的任何进程的全局常量。包含一些环境文件的文件不会自动加载;假设 apache 使用该文件,这些环境变量仅与 apache 使用时相关,即 http 上下文。

如果你想将它们加载到 shell 中你需要自己加载它们, IE:

$ source /etc/apache2/envvars
$ env # show everything

相关内容