初期化スクリプトが/etc/environmentに設定された環境変数を取得できませんか?

初期化スクリプトが/etc/environmentに設定された環境変数を取得できませんか?

service <service> startinit.d()を介して開始されたプロセスを含むUbuntuのすべてのプロセスを取得するためにグローバル環境変数を設定する正しい方法は何ですか?詳細:

最初は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ページを確認すると、変数は一覧表示されますが、その値は表示されません。これはログインシェルで定義されアクセスされます。

ファイルに設定しようとしましたが、値が利用できなくなりましたclear_env = nowww.conf

php7.2-fpmservice php7.2-fpm startログインシェルの子ではなくlaunchで起動します。

すべてのプロセスで環境を使用できるようにするにはどうすればよいですか?

私のWebサーバーはNginxで、オペレーティングシステム環境はUbuntu 18.04.1 LTSです。

ベストアンサー1

次のように見えます。http://nginx.org/en/docs/ngx_core_module.html#env

デフォルトでは、nginxは親プロセスから継承されたすべての環境変数(TZ変数を除く)を削除します。

このenvディレクティブを使用して、nginxが環境変数を取得することを明示的に許可できます。

おすすめ記事