将环境variables传递给PHP CLI和FPM

我想在我的PHP应用程序中使用CLI和FPM环境variables。 我做的是我:

  • /etc/environment导出一些variables。
  • configurationphp.ini (CLI和FPM)到variables_order = "EGPCS"
  • configurationFPM www.conf clear_env = no

我期望的是在CLI和FPM应用程序中都可以使用环境variables。 实际上,这只适用于CLI。 FPM的$_ENV不包含这些环境variables。

我注意到可以在www.conf定义环境variables,但这样做www.conf方便,因为我必须复制粘贴/etc/environment所有variables,并始终保持两个文件同步。

问题是:是否可以将所有环境variables直接传递给PHP-FPM应用程序,而无需在www.conf粘贴它们?

从文档 :

默认情况下,除了TZvariables,nginx会删除从父进程inheritance的所有环境variables。

正如你所提到的,你已经尝试在fastcgiconfiguration中设置它们,我认为在这种情况下你可以做的最好。 为了他人的利益,这样做是这样的:

 location ~ \.php$ { # ... fastcgi_param APPLICATION_ENV "production"; fastcgi_param MY_OTHER_ENV "things"; include fastcgi_params; # ... } 

我理解厌恶“复制粘贴”,并同意! 你应该看看使用诸如Puppet,SaltStack,Ansible之类的configurationpipe理工具来pipe理你的configuration文件。 这样,您可以轻松地在所有必需的位置之间同步环境variables列表。 让我知道如果你需要更多的信息。