이글루스 로그인


Oracle관련 웹어플 실행시 Apache에서 Segmentation Fault가 발생하는 경우

 
PHP등에서 오라클DB 접속 시도시 아파치 프로세스가 KILL 되는 경우가 있습니다. 이경우 프로세스 자체가 KILL 되어버리면 PHP나 DB의 에러 로그가 전혀 남지 않음은 물론, Apache의 errorlog에서도 단지 Segmentation Fault가 발생했다는 내용만 남을뿐 그밖에 어떤 흔적도 남지 않기에 원인을 추적하기가 무척 곤란한 경우가 많습니다.
사실 Segmentation Fault 의 원인은 너무나 다양하기에 특정하기가 무척 힘듭니다만, 오라클 관련 커맨드를 실행중에 이런 문제가 생겼다면, 많은 경우 퍼미션에 관련되었을 가능성이 높습니다.

이경우 확인할 사항은 다음과 같습니다.

1. 아파치 실행시 오라클 관련 파라메터들이 제대로 설정되어 있는가.
2. 아파치 유저에게 오라클 관련 파일에의 접근 퍼미션이 주어져 있는가.

특히 2번의 경우, 가령 예를 들어 오라클 클라이언트에서 DB 서버에 접근시에는
$ORACLE_HOME/network/admin/tnsnames.ora을 통해 서버 리스너 정보를 확보합니다만 여기까지 접근하는 parent 디렉토리, 혹은 tnsnames.ora자체가 other그룹에 read권한이 주어져 있지 않을 경우 기본설정의 Apache는 리스너 정보에의 접근에 실패하고 Segmentation Fault 를 일으킵니다.

이러한 퍼미션 관련의 문제를 해결하기 위해서 관련 디렉토리들에는 755, 각 파일들에 644 이상의 퍼미션을 부여함으로써 other그룹의 유저도 접근이 가능하도록 수정하는 방법이 있습니다만 많은 관련 디렉토리 및 파일들을 전부 수정하는 것은 효율이 나쁘고 other그룹의 타유저에게도 접근을 허용하는 세큐리티 홀을 발생시키게 됩니다. 그러므로 일반적으로 이 문제를 해결하기 위한 솔루션으로써는 Apache의 설정에서 유저 그룹을 오라클 유저그룹에 접근 가능한 권한의 그룹으로 설정하는 방법이 있습니다. 이경우 Apache의 유저 자체를 오라클 유저로 설정하는 것은 심각한 세큐리티 홀을 발생시킬 가능성이 있으므로 권장되지 않습니다.


이상.

by 대나무 | 2007/09/14 18:03 | 시스템 구축과 관리 | 트랙백 | 덧글(2)

트랙백 주소 : http://elflord.egloos.com/tb/3388504
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 투덜 at 2007/09/26 12:35
ㅎㅎㅎ 저같은 초보에게는 뭔가 포~쓰가 느껴지는 글이네요..
Commented by 대나무 at 2007/09/27 23:36
투덜/ 익숙해지면 별 것 아닙니다.

:         :

:

비공개 덧글


◀ 이전 페이지          다음 페이지 ▶