APM + 오라클 연동한 아파치 자동 시작시 오라클 데이터 한글 깨짐
APM 과 오라클이 연동되어 있습니다. 실제 오라클 디비는 다른 서버에 설치되어 있고
리모트로 쿼리의 결과를 가저오는 구조 입니다.
제가 설치 한 것이 아니라서 몰랏는데.. 며칠전에 서버를 내릴 일이 있었습니다.
분명히 ntsysv 에서 httpd 데몬이 자동시작 되게 설정 되어 있는 걸 확인하였고
chkconfig 에서도 마찬가지로 확인하였으나 자동시작이 되지 않았습니다. 부트로그를 보니 /usr/local/apache_2.0.59/modules/libphp4.so into server: libclntsh.so.8.0 요 파일을 찾을수 없어서 libphp4.so 를 열수 없다는 에러가 나왔습니다.
$LD_LIBRARY_PATH 변수를 echo 해보니 libclntsh.so 파일이 있는 위치가 잘 잡혀 있었습니다. apachectl start 해보니 잘 되구요.
/etc/profile 파일에서 $LD_LIBRARY_PATH 에 오라클 라이브러리 경로를 추가하고, 오라클 관련 환경변수들을 잡아주더군요.
결국 쉘이 뜨기 전에는 $LD_LIBRARY_PATH 에 오라클 라이브러리 파일 경로가 없어서 생기는 문제였습니다.
간단하게 apachectl 파일 위쪽이나 아파치 bin 디렉토리의 envvars 파일에다가
추가하면 되겠거니.. 생각되서 그렇게 해보니 서버 시작과 동시에 httpd 프로세스가
잘 구동이 되었습니다. 하지만 문제는 오라클의 데이터를 가저오는 웹 페이지의 경우에는 죄다 다 깨져서 보인다는게 문제였습니다.(오라클에서 긁어온 데이터만 깨집니다.)
접속 관련 경고도 뜨는 페이지도 있는거 같고요.
그래서 다시 아파치를 stop 후(재시작으론 해결이 안됩니다.) 다시 start 시켜주니
멀쩡하게 되었습니다.
고민을 해보니 /etc/profile 에는 오라클 관련 환경변수도 있다는걸 떠 올렷습니다.
ORACLE_HOME=/home/oracle/OraHome1
TNS_ADMIN="/home/oracle/OraHome1/network/admin"
LD_LIBRARY_PATH=/home/oracle/OraHome1/lib:/lib:/usr/lib
NLS_LANG=American_America.KO16KSC5601
LANG=korean
요런 내용들이 있는데요, 요런 것들도 apachectl 상단이나 envvars 에다가 추가를 해주면
한글도 문제 없이 나올까요? 실제 구동중인 웹서버라 함부로 재부팅은 위험해서요.
새벽에 살짝 할 수도 있겠지만.. 음..
가능 합니다.
제가 그렇게 설정하고 있습니다만
문제없이 동작합니다.
댓글 달기