Php

將環境變數傳遞給 PHP CLI 和 FPM

  • December 8, 2017

我想在 CLI 和 FPM 的 PHP 應用程序中使用環境變數。我要做的是:

  • 導出一些變數/etc/environment
  • php.ini將(CLI 和 FPM)都配置為variables_order = "EGPCS".
  • 將 FPM 配置www.confclear_env = no

我期望的是環境變數在 CLI 和 FPM 應用程序中都可用。事實上,這只適用於 CLI。FPM$_ENV不包含那些環境變數。

我注意到可以在其中定義環境變數,www.conf但這很不方便,因為我必須從中複製粘貼所有變數/etc/environment並始終保持兩個文件同步。

問題是:是否可以將所有環境變數直接傳遞給 PHP-FPM 應用程序而無需複制粘貼www.conf

文件

預設情況下,nginx 會移除所有繼承自其父程序的環境變數,除了 TZ 變數。

正如您所提到的,您已經嘗試在 fastcgi 配置中設置它們,我認為這是在這種情況下您能做的最好的事情。為了他人的利益,這樣做是這樣的:

location ~ \.php$ {

   # ...
   fastcgi_param APPLICATION_ENV "production";
   fastcgi_param MY_OTHER_ENV "things";
   include fastcgi_params;

   # ...
}

我理解對“複製粘貼”的厭惡,並同意!您應該考慮使用 Puppet、SaltStack、Ansible 等配置管理工具來管理您的配置文件。這樣您就可以輕鬆地在所有需要的位置之間同步您的環境變數列表。如果您需要有關此的更多資訊,請告訴我。

引用自:https://serverfault.com/questions/844088