PHP缺少环境变量

时间:2016-08-11 00:04:17

标签: php environment-variables

我试图在/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 /环境:

FOO=42

FOO变量在我的shell中可用:

echo $FOO                             # prints 42

在CLI中运行时,FOO变量可供PHP使用:

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 不清除环境?

1 个答案:

答案 0 :(得分:0)

在获得更多有关systemd的经验之后,我发现了一种解决方法。

打开php7.2-fpm服务的选项文件

systemctl edit php7.2-fpm

添加以下内容

[Service]
EnvironmentFile=/etc/environment

重新启动服务

systemctl restart php7.2-fpm