티스토리 뷰

진행하는 프로젝트에서 난감한 일이 발생했다.

아파치 모듈을 작성중인데 모듈에서 LD_LIBRARY_PATH 환경 변수를 읽지 못한다.

찾아보니, mod_env.c 모듈을 포함시키고 여기서 SetEnv 와 PassEnv 디렉티브를 쓰라고 했다.

열심히 httpd.conf 의 전역 설정으로 변경을 했건만 여전이 환경 변수를 못 읽었다.

in httpd.conf
...
PassEnv LD_LIBRARY_PATH
...

예전에 APM 모듈을 유닉스에서 돌릴 때에, 오라클 라이브러리 참조 문제로 동일한 문제를 겪었었는데... 기억이 안 났었다. -.-;

왜 안되나? mod_env.c 가 포함이 안된 것인가? 아니다.

.profile 등의 쉘 시작 파일에 환경 변수가 잡혀있지 않아서였다. -.-;

in .profile
...
LD_LIBRARY_PATH=/lib
export LD_LIBRARY_PATH
...

그냥 됬다. 허무하다.

왜 그런가? 아파치 소스를 살펴보아야 할 듯 하지만, 대략은 apache 가 데몬으로 돌아갈 때에 httpd.conf 에 설정한 계정으로 spawn 을 하기 때문인 듯 하다. 그런데, spawn 할 때에 .profile 도 실행하는 것이었나... 일단 추후에 또 확인이 필요하다.

다음은 참고한 글이다.

http://www.codeforum.net/wiki/doku.php?id=trac

댓글