可能重复:
为什么我的 $_ENV 是空的?
我试图在我的脚本中使用 $_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
重启阿帕奇。
在您的 php 脚本中,您使用:
getenv('MY_ENV_VAR1')
访问这些环境设置。SetEnv 将设置这些变量并将它们传递回 Apache 以供使用。如果要使用现有的 shell 环境变量,则应将以下内容添加到 Apache 配置文件或虚拟主机文件中:
PassEnv env_variable [env_variable]....
使其可用于 Apache 和您的脚本。