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
设置变量,但它给出了相同的结果——变量已设置,但值为空字符串。
您可以通过在脚本中使用getenv()
函数来测试是否正确设置了值。我还没有找到通过setenv()
以外的脚本安全地推送环境变量的方法,但如果您愿意,它可能不会对运行时环境进行永久性更改,并且可能只在每次运行时设置它。