이슈] 개발 환경에서는 잘 동작되던 war파일이 운영 환경에서 첫페이지 빼고 404 에러 발생.
로그는 대충 class파일을 찾을수 없거나 jsp 파일을 찾을수 없다고 나옴. ftp 확인 결과 파일은 모두 있음.
해결]
$id로 실행시킬 계정과 그룹을 확인후
$chown 계정명:그룹명 /usr/local/apache-tomcat-7.0.90 -R
톰캣 홈 폴더 내 하위경로 포함(R) 실행시킬 소유자/그룹으로 소유권 변경
모든 작업은 root로 해야함.
실행을 root 권한으로 해버리는 경우 다른계정에서 실행시 클래스 파일이나 jsp 파일이 생성되지 않아 404,503 에러가 뜰수 있음.
참조 :
+톰캣을 root 계정이 아닌 특정계정 tomcat 계정으로 실행 하기
우선 tomcat 계정을 생성한다.
# useradd -M tomcat
톰캣 계정 설정 확인
계정을 생성하면 home 디렉토리가 /home/tomcat으로 설정 되며, 이를 CATALINA_HOME으로 변경해준다.
# grep tomcat /etc/passwd
tomcat:x:503:503::/usr/local/tomcat:/bin/bash
실행 스크립트 작성하기 (간략버전)
# vi /etc/rc.d/init.d/tomcat
아래 내용을 작성한다. ==> 서비스 재시작(restart)시 문제가 발생할 수 있음!!! 주의! (binding fail.) => 서비스 shutdown이 완전히 완료되었는지 확인하는 작업이 필요함.
(아래는 간략 버전이므로 restart는 정확성이 보장 안됨. 다음에 나오는 update 버전 참고)
#!/bin/bash
# Startup script for the Tomcat Server
# chkconfig: 345 50 50
# description: Tomcat is a Web application server.
# processname: java
# directory : CATALINA_HOME=/usr/local/tomcat
. /etc/profile
case "$1" in
start)
echo "Starting tomcat: "
su - tomcat -c $CATALINA_HOME/bin/startup.sh
;;
stop)
echo "Shutting down tomcat: "
su - tomcat -c $CATALINA_HOME/bin/shutdown.sh
;;
restart) # 안전하지 않으니 restart는 하지 말 것.
echo "Restarting tomcat: "
su - tomcat -c $CATALINA_HOME/bin/shutdown.sh; su - tomcat -c $CATALINA_HOME/bin/startup.sh
;;
*)
echo "Usage: service tomcat {start|stop|restart}"
exit 1
esac
exit 0
소유권을 tomcat으로 변경
# chown tomcat:tomcat tomcat
tomcat 스크립트에 실행권한 주기
#chmod 755 tomcat
runlevel에 등록
chkconfig에서 add 될 수 있도록 스크립트에 "# chkconfig: 345 50 50" 를 추가한다.
#chkconfig --add tomcat
실제로 리부팅시 톰캣이 tomcat 계정으로 실행되는지 확인한다
# reboot
톰캣 실행시 데몬실행이 tomcat으로 되어 있는지 확인한다. tomcat이 아닌 root인경우는 잘못된 경우임
# ps -ef | grep tomcat
톰캣 프로세스 수동 시작 및 종료
# service tomcat start
# service tomcat stop
출처: http://crazyj.tistory.com/52 [크레이지 제이의 탐구생활]
'프로그래밍 > OS, Server' 카테고리의 다른 글
[Tomcat] 아파치 톰캣 따라잡기 -2 (0) | 2018.08.31 |
---|---|
[Tomcat] 아파치 톰캣 7 따라잡기 -1 (0) | 2018.08.31 |
tomcat 7 의 ROOT context 를 임의의 webapp 로 변경하기 (0) | 2018.08.22 |
[개발환경] 배포 (0) | 2018.06.27 |
[Tomcat] 경고: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.serverr:'' did not find a matching property. (0) | 2018.03.17 |