Linux

為什麼我在 shell 中看不到 apache 的環境變數?

  • June 5, 2016

我在我的 Debian 8 筆記型電腦上執行 apache。我沒有進行任何配置更改,所以一切都是預設的。

apache2.conf 使用 /etc/apache2/envvars 中定義的環境變數,但是當我在筆記型電腦上打開 shell 並執行 printenv 時,我看不到 envvars 中定義的任何這些變數。

他們是在不同的環境中執行還是什麼?為什麼我看不到他們?

關於 apache 環境變數的apache 文件沒有提到 envvars,所以我假設在那裡定義的變數是作業系統 env vars,而不是特定於 apache 的機制。

他們是在不同的環境中執行還是什麼?

是的。

環境變數不是適用於機器上執行的任何程序的全域常量。包含一些 env 文件的文件不會自動載入;假設 apache 使用該文件,那些 env vars 僅與使用 apache 時相關,即 http 上下文。

如果您希望將它們載入到外殼中*,則需要自己載入它們*,即:

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

引用自:https://serverfault.com/questions/782077