可能重复:
Why is my $_ENV empty?
我正在尝试在我的脚本中使用$ _ENV,但它返回一个空数组。代码是:
print_r($_ENV);
以下是我的回复:
Array ( )
脚本在Linux服务器上运行(我有管理员权限,但我没有自己设置服务器)。无论我是以管理员身份还是普通用户身份登录,如果我从终端输入env,我会看到大约20个单独的项目,因此环境不是空的。
我过去使用$ _ENV没有任何问题(但已经有一段时间了)。我错过了什么?
对php.ini的修改没有办法解决问题。有效的是:
找到您的httpd配置文件或您的虚拟主机配置文件(在某些情况下,它们是同一个文件),并为每个环境变量添加以下内容(在VirtualHost部分内):
SetEnv MY_ENV_VAR_1 test1
SetEnv MY_ENV_VAR_2 test2
重启Apache。
在您的PHP脚本中,您使用:
getenv('MY_ENV_VAR1')
访问这些环境设置。 SetEnv将设置这些变量并将它们传递回Apache以供使用。如果要使用现有的shell环境变量,则应将以下内容添加到Apache配置文件或虚拟主机文件中:
PassEnv env_variable [env_variable]....
使其可用于Apache和您的脚本。