PHPアプリケーションでCLIとFPMの両方で環境変数を使用したい。私がしていることは次のとおりです。
/etc/environment
にいくつかの変数をエクスポートします。php.ini
(CLIとFPM)の両方をvariables_order = "EGPCS"
に構成します。www.conf
をclear_env = no
に構成します私が期待しているのは、環境変数がCLIとFPMアプリケーションの両方で利用できることです。実際、これはCLIでのみ機能します。 FPMの$_ENV
には、これらの環境変数は含まれていません。
www.conf
で環境変数を定義できることに気づきましたが、/etc/environment
からすべての変数をコピーして貼り付け、常に2つのファイルの同期を維持する必要があるため、不便です。
問題は、すべての環境変数をwww.conf
にコピーして貼り付けることなく、PHP-FPMアプリケーションに直接渡すことは可能ですか?
から ドキュメント :
デフォルトでは、nginxは、TZ変数を除く、親プロセスから継承されたすべての環境変数を削除します。
あなたが言ったように、あなたはfastcgi設定でそれらを設定しようとしました、それは私が思うに、この状況であなたができる最善のことです。他の人の利益のために、これは次のように行われます:
location ~ \.php$ {
# ...
fastcgi_param APPLICATION_ENV "production";
fastcgi_param MY_OTHER_ENV "things";
include fastcgi_params;
# ...
}
「コピー&ペースト」への嫌悪感を理解し、同意します。 Puppet、SaltStack、Ansibleなどの構成管理ツールを使用して構成ファイルを管理することを検討する必要があります。これにより、必要なすべての場所間で環境変数リストを簡単に同期できます。これについてさらに情報が必要な場合はお知らせください。