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 를 통해 시작합니다 .
모든 프로세스에서 환경을 사용할 수 있도록 하려면 어떻게 해야 합니까?
내 웹 서버는 Nginx이고 운영 체제 환경은 Ubuntu 18.04.1 LTS입니다.
답변1
다음과 같이 보일 수 있습니다:http://nginx.org/en/docs/ngx_core_module.html#env
기본적으로 nginx는 상위 프로세스에서 상속된 모든 환경 변수(TZ 변수 제외)를 제거합니다.
이 env
지시문을 사용하여 nginx가 환경 변수를 얻도록 명시적으로 허용할 수 있습니다.