无法在php-fpm中访问系统范围的环境变量

时间:2016-07-20 16:14:54

标签: php environment-variables

Ubuntu 16.04,php7.0-fpm,apache 2.4,nginx 1.10.0

我在两个可能的位置添加了一个系统范围的环境变量:

/etc/environment:
ENVTEST=123

/etc/profile.d/env.sh:
export ENVTEST=123

检查:

vagrant@localhost:~$ echo $ENVTEST
123

在/etc/php/7.0/fpm/pool.d/www.conf中我将变量传递给PHP:

env[ENVTEST] = $ENVTEST

但是这个变量值是$ _SERVER数组中的空字符串。

如果我在www.conf env[ENVTEST] = 123中使用静态值,它可以正常工作。

在控制台模式下,我可以访问变量值,它不能仅在php-fpm模式下工作。

我也尝试在Apache配置中通过SetEnv设置变量,但它给出了相同的结果 - 变量已设置但值为空字符串。

1 个答案:

答案 0 :(得分:0)

您可以使用脚本中的getenv()函数测试正确设置的值。我还没有找到一种通过setenv()以外的脚本安全地推送环境变量的方法,但如果你愿意,它可能不会将永久性更改推送到运行时环境,并且可能只在每次运行时设置它。