service <service> start
init.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 = no
。www.conf
php7.2-fpm
service 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が環境変数を取得することを明示的に許可できます。