初始化脚本未获取 /etc/environment 中设置的环境变量?

初始化脚本未获取 /etc/environment 中设置的环境变量?

设置全局环境变量的正确方法是什么,以便在 Ubuntu 上获取所有进程,包括通过 init.d ( service <service> start) 启动的进程?细节:

我第一次在 PHP 中看到这个问题,但现在发现它不是 PHP 特有的。以下是我所看到的原始解释。

/etc/environment我已经设置:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
SYS_ENVIRONMENT=dev

然后在 PHP 配置文件中/etc/php/7.2/fpm/pool.d/www.conf我定义了:

env[SYS_ENVIRONMENT] = $SYS_ENVIRONMENT

然后重新启动php7.2-fpm。然后在检查 phpinfo 页面时,会列出该变量,但不会列出其值。它是在登录 shell 中定义和访问的。

我确实尝试clear_env = nowww.conf文件中进行设置,但这并不使该值可用。

php7.2-fpm我通过启动service php7.2-fpm start,而不是作为登录 shell 的子级启动。

我应该做什么来确保环境可供所有进程使用?

我的Web服务器是Nginx,操作系统环境是Ubuntu 18.04.1 LTS。

答案1

可能是这样的:http://nginx.org/en/docs/ngx_core_module.html#env

默认情况下,nginx 会删除从其父进程继承的所有环境变量(TZ 变量除外)。

您可以使用该env指令显式允许 nginx 获取环境变量。

相关内容