1

可能重复:
为什么我的 $_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 和您的脚本。

4

0 回答 0