Ubuntu에서 환경 변수 설정

Ubuntu에서 환경 변수 설정

내 Ubuntu 컴퓨터에서 환경 변수를 설정하려고 합니다. 이제 나는 몇 가지 연구를 수행하고 우분투에서 환경 변수를 설정하는 이 질문의 접근 방식을 시도했습니다.

비슷한 질문이지만 문제는 내 변수를 포함하기 위해 "etc/enviroment", "etc/profile" 및 "etc/bash.bashrc" 파일을 작성했다는 것입니다.

JAVA_HOME=/home/glv/information/jdk1.6.0_25/
export JAVA_HOME
BASEDIR=/home/glv/apache-tomcat-6.0.29/  
export BASEDIR

그러나 문제는 Apache에서 start.sh를 실행할 때 여전히 BASEDIR 환경 변수가 올바르게 설정되지 않았다는 메시지가 표시되고, 제가 이해한 바로는 JAVA_HOME도 올바르지 않을 수 있다는 것입니다. 저는 최신 Ubuntu를 사용하고 있는데 이것이 문제인지 아니면 문제를 해결하기 위해 다른 조치를 취해야 하는지 잘 모르겠습니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변1

Ubuntu의 Apache는 에 있는 Apache init 스크립트를 사용하여 실행됩니다 /etc/init.d/apache2. 이 스크립트는 다음 명령을 사용하여 Apache를 시작하고 중지할 때 실행됩니다.

> sudo service apache2 [start|stop|restart|graceful|etc...]

이 init 스크립트를 보면 먼저 파일에서 환경 변수를 읽어서 환경이 설정되고 수정되는 것을 볼 수 있습니다 /etc/apache2/envvars. Apache의 서버 프로세스는 seteuid 실행 파일이므로 "유효 사용자 ID"를 사용하여 실행될 수 있으므로 이러한 별도의 환경이 중요합니다. 내 Ubuntu 시스템에서는 루트 사용자가 프로세스를 시작하더라도 Apache 프로세스가 사용자 이름 "www-data"로 실행됩니다. 이는 "시스템 계정"이므로 기본 쉘 또는 bash 환경이 없으며 사용자 환경을 설정하는 데 파일을 사용하지 않습니다.

그래서 당신이 원하는 것은 이러한 환경 변수를 /etc/apache2/envvars.

고쳐 쓰다:

Ubuntu의 Apache에는 실행 중인 Apache 환경을 수정하는 데에도 사용할 수 있는 여러 .conf 파일(/etc/apache2/ 및 하위 디렉터리에 있음)이 있습니다. 구성 파일은 순차적으로 구문 분석되며 모두 기본 구성 파일에 포함됩니다 /etc/apache2/apache2.conf.

이 conf 파일에서 다음을 사용할 수 있습니다환경 설정환경을 수정합니다. 그러면 당신은 이 환경이 당신이 원하는 환경임을 확신하게 될 것입니다. 예를 들어 다음을 추가할 수 있습니다 /etc/apache2/httpd.conf.

 SetEnv JAVA_HOME /home/glv/information/jdk1.6.0_25/

관련 정보