Php
將環境變數傳遞給 PHP CLI 和 FPM
我想在 CLI 和 FPM 的 PHP 應用程序中使用環境變數。我要做的是:
- 導出一些變數
/etc/environment
。php.ini
將(CLI 和 FPM)都配置為variables_order = "EGPCS"
.- 將 FPM 配置
www.conf
為clear_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 等配置管理工具來管理您的配置文件。這樣您就可以輕鬆地在所有需要的位置之間同步您的環境變數列表。如果您需要有關此的更多資訊,請告訴我。