초기화 스크립트가 /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 = no.www.conf

php7.2-fpmservice php7.2-fpm start로그인 셸의 자식이 아닌 launch 를 통해 시작합니다 .

모든 프로세스에서 환경을 사용할 수 있도록 하려면 어떻게 해야 합니까?

내 웹 서버는 Nginx이고 운영 체제 환경은 Ubuntu 18.04.1 LTS입니다.

답변1

다음과 같이 보일 수 있습니다:http://nginx.org/en/docs/ngx_core_module.html#env

기본적으로 nginx는 상위 프로세스에서 상속된 모든 환경 변수(TZ 변수 제외)를 제거합니다.

env지시문을 사용하여 nginx가 환경 변수를 얻도록 명시적으로 허용할 수 있습니다.

관련 정보