我试图在/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 不清除环境?
答案 0 :(得分:0)
在获得更多有关systemd的经验之后,我发现了一种解决方法。
打开php7.2-fpm服务的选项文件
systemctl edit php7.2-fpm
添加以下内容
[Service]
EnvironmentFile=/etc/environment
重新启动服务
systemctl restart php7.2-fpm