【发布时间】:2016-08-11 00:04:17
【问题描述】:
我正在尝试在/etc/environment 中设置一些全局环境变量,PHP 应该可以使用这些变量。但是我不知道如何让 PHP 在通过 php-fpm 运行时识别变量,但在通过 php-cli 运行时可以。
/etc/php-fpm.conf:
clear_env = no
/etc/php-fpm.d/www.conf:
clear_env = no
/etc/environment:
FOO=42
FOO 变量在我的 shell 中可用:
echo $FOO # prints 42
在 CLI 中运行时,PHP 可以使用 FOO 变量:
echo getenv('FOO') . "\n"; // prints 42
但是通过 FPM 运行时,PHP 无法使用 FOO 变量:
echo getenv("FOO") . "\n"; // prints nothing
echo $_ENV["FOO"] . "\n"; // prints nothing
echo $_SERVER["FOO"] . "\n"; // prints nothing
如何让php-fpm不清除环境?
【问题讨论】:
-
...之后你重启了php-fpm吗?
-
是的。我试图找到可以验证
clear_env设置的地方(例如使用phpinfo()),但我没有运气。 -
serverfault.com 可能是一个更好的询问地点。那里有一个 php-fpm 标签,但这里没有。
-
@Barmar 取决于解决方案的具体内容,它实际上可能是任一站点的主题。
-
@bwoebi 这不是倒退吗?提问的正确位置取决于答案是什么?但如果你不知道答案,你怎么知道去哪里问?