5

我在整个 linux 变量中添加了一个变量/etc/profile

export MYNAME="My Value"

在通过 apache Web 服务器运行期间,如何在 php 源代码中访问此值?在 $_SERVER 这个值不存在。

只是这个键出现在 $_ENV 上:

_ENV["APACHE_RUN_DIR"]  /var/run/apache2
_ENV["APACHE_PID_FILE"] /var/run/apache2.pid
_ENV["PATH"]            /usr/local/bin:/usr/bin:/bin
_ENV["APACHE_LOCK_DIR"] /var/lock/apache2
_ENV["LANG"]            C
_ENV["APACHE_RUN_USER"] www-data
_ENV["APACHE_RUN_GROUP"]    www-data
_ENV["APACHE_LOG_DIR"]  /var/log/apache2
_ENV["PWD"]                 /
4

2 回答 2

4

假设变量是在正确的用户下导出的,$_ENV应该包含它们。

见:http ://se.php.net/manual/en/reserved.variables.environment.php

于 2012-11-03T13:08:59.843 回答
1

尝试为守护进程设置环境变量比听起来要棘手。只有交互式登录 bash shells source /etc/profile,这可能与您的 Web 服务器进程的条件不匹配。请参阅此页面了解更多信息。

但是,您可以在 Apache 和 PHP 中设置环境变量

在 Apache 配置文件中:

SetEnv ENV_VAR var_value

重启,服务器。然后你应该能够使用$_ENVPHP 来获取这个变量。

于 2012-11-03T13:22:51.143 回答