【发布时间】:2016-07-20 16:14:54
【问题描述】:
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 设置变量,但结果相同 - 变量已设置但值为空字符串。
【问题讨论】:
-
我找到了解决方案:在 apache envvars 文件中包含 "./etc/profile.d/env.sh" 并为每个文件添加 PassEnv VirtualHost 部分中的变量。
-
Alexey,你找到解决这个问题的方法了吗?