Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- eclipse
- trac
- SSL
- yum
- 삽질
- 이클립스
- Galileo
- netstate
- 지름신
- 3.5
- Java
- resin
- NEXUS
- Apache
- 파워목업
- subversion
- Find
- Babel
- tomcat
- tagx
- egrep
- CentOS6
- 보드
- 연동
- CentOS
- Powermockup
- svn
- linux
- 갈릴레오
- 권한변경
Archives
- Today
- Total
....
CentOS 5.3에서 Java와 Tomcat 설치 - Tomcat을 서비스로 관리하기.. 본문
CentOS에서 Tomcat을 설치하려면 Java가 필요한데..
솔직히 Java와 Tomcat만은 도저히 yum패키지를 설치하기가 그렇다..
Java Download : http://java.sun.com/javase/downloads/index.jsp
위 사이트에서 jdk-6u17-linux-i586.bin 를 다운받아서 실행한다.
cd /usr/local/src
sh jdk-6u17-linux-i586.bin
# 라이센스 전문이 출력되면 q를 누르고 yes를 입력하면 파일 압축이 해제된다.
mkdir /usr/local/jdk
mv jdk1.6.0_17 /usr/local/jdk
ln -s /usr/local/jdk/jdk1.6.0_17 /usr/java
sh jdk-6u17-linux-i586.bin
# 라이센스 전문이 출력되면 q를 누르고 yes를 입력하면 파일 압축이 해제된다.
mkdir /usr/local/jdk
mv jdk1.6.0_17 /usr/local/jdk
ln -s /usr/local/jdk/jdk1.6.0_17 /usr/java
Java 패키지는 /usr/local/jdk/ 밑에 버젼별로 두고...
심볼릭 링크로 /usr/java 로 둔다... 나중에 Java의 버젼을 관리할때 다른 버젼을 /usr/local/jdk에 둔 뒤에 java의 심볼릭 링크 대상만 변경하면 된다.
이는 시스템 관리자마다 각각 편한 방식으로 사용하면 된다.
Java의 환경설정을 별도의 profile을 만들어서 등록한다.
touch /etc/profile.d/java.sh
chmod 755 /etc/profile.d/java.sh
vi /etc/profile.d/java.sh
### 아래의 내용을 입력한뒤 저장
#!/bin/sh
JAVA_HOME=/usr/java
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
### 저장 내용 끝
chmod 755 /etc/profile.d/java.sh
vi /etc/profile.d/java.sh
### 아래의 내용을 입력한뒤 저장
#!/bin/sh
JAVA_HOME=/usr/java
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
### 저장 내용 끝
이후 Java에 의존적인 어플리케이션에 대한 환경 변수는 java.sh 파일에 추가만 해주면 된다.
/etc/profile 의 최하단에 설정을 직접 추가할 수도 있겠지만..
실제로 /etc/profile은 /etc/profile.d 밑에 있는 모든 파일을 실행해서 환경변수를 등록하는 스크립트 일 뿐이므로.. 이 방식이 보다 센스 있는 방법이라고 할 수 있다.
이제 저장한 환경변수를 실행해서 등록한다. (환경변수 등록하자고 재부팅 할수는 없다...)
source /etc/profile.d/java.sh
env | grep JAVA
# JAVA_HOME의 경로가 나온다...
java -version
# JAVA 의 버젼이 3줄 출력된다. (1.6.0_17 이다...)
env | grep JAVA
# JAVA_HOME의 경로가 나온다...
java -version
# JAVA 의 버젼이 3줄 출력된다. (1.6.0_17 이다...)
자... 자바 설치는 이걸로 끝이다.... 참 쉽다.... ㅡㅡㅋ;
이제 Tomcat 설치....
Tomcat을 core에 tar.gz로 다운 받는다. (http://tomcat.apache.org/download-60.cgi)
cd /usr/local/src
wget http://apache.tt.co.kr/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
tar xvzpf apache-tomcat-6.0.20.tar.gz
mkdir /usr/local/apache-tomcat
mv apache-tomcat-6.0.20 /usr/local/apache-tomcat
cd /usr/local
ln -s apache-tomcat/apache-tomcat-6.0.20 tomcat
/usr/local/apache-tomcat 밑에 tomcat의 소스를 두고... wget http://apache.tt.co.kr/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
tar xvzpf apache-tomcat-6.0.20.tar.gz
mkdir /usr/local/apache-tomcat
mv apache-tomcat-6.0.20 /usr/local/apache-tomcat
cd /usr/local
ln -s apache-tomcat/apache-tomcat-6.0.20 tomcat
심볼릭링크로 /usr/local/tomcat 경로를 만들어서 접근한다...
이렇게 하면 tomcat버젼을 바꿀때마다 환경설정을 바꿀 필요도 없으면서..
현재 설치된 톰캣의 버젼을 바로 확인할 수 있어서 자주 이용한다.
아래와 같은 service 파일을 /etc/init.d 에 등록한다.
vi /etc/init.d/tomcat
#### 이하 tomcat 파일의 내용..
#!/bin/bash
#
# httpd Startup script for the Apache Tomcat Server
#
# chkconfig: - 80 20
# description: Release implementation for Servlet 2.4 and JSP 2.0
# processname: tomcat
# lockfile: /var/lock/subsys/tomcat
# pidfile: /var/run/tomcat.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Java의 환경설정을 가져온다.
if [ -f /etc/profile.d/java.sh ]; then
. /etc/profile.d/java.sh
fi
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
prog=Tomcat
lockfile=${LOCKFILE-/var/lock/subsys/tomcat}
pidfile=${PIDFILE-/var/run/tomcat.pid}
# CATALINA_PID파일을 지정하면, startup.sh 에서 pid를 기록.
export CATALINA_PID=$pidfile
start() {
echo $"Starting $prog: "
$CATALINA_HOME/bin/catalina.sh start
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
stop() {
echo $"Stopping $prog: "
$CATALINA_HOME/bin/catalina.sh stop
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${pidfile} && rm -f ${lockfile}
}
status() {
RETVAL="1"
if [ -f "$CATALINA_PID" ]; then
read kpid < $CATALINA_PID
if checkpid $kpid 2>&1; then
echo "$prog is already running (${kpid})"
RETVAL="0"
else
echo "lock file found but no process running for pid $kpid"
fi
else
pid="$(pgrep java)"
if [ -n "$pid" ]; then
echo "$prog running (${pid}) but no PID file exists"
RETVAL="0"
else
echo "$prog is stopped"
fi
fi
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 2
start
;;
status)
status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
### tomcat 내용 끝.
#### 이하 tomcat 파일의 내용..
#!/bin/bash
#
# httpd Startup script for the Apache Tomcat Server
#
# chkconfig: - 80 20
# description: Release implementation for Servlet 2.4 and JSP 2.0
# processname: tomcat
# lockfile: /var/lock/subsys/tomcat
# pidfile: /var/run/tomcat.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Java의 환경설정을 가져온다.
if [ -f /etc/profile.d/java.sh ]; then
. /etc/profile.d/java.sh
fi
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
prog=Tomcat
lockfile=${LOCKFILE-/var/lock/subsys/tomcat}
pidfile=${PIDFILE-/var/run/tomcat.pid}
# CATALINA_PID파일을 지정하면, startup.sh 에서 pid를 기록.
export CATALINA_PID=$pidfile
start() {
echo $"Starting $prog: "
$CATALINA_HOME/bin/catalina.sh start
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
stop() {
echo $"Stopping $prog: "
$CATALINA_HOME/bin/catalina.sh stop
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${pidfile} && rm -f ${lockfile}
}
status() {
RETVAL="1"
if [ -f "$CATALINA_PID" ]; then
read kpid < $CATALINA_PID
if checkpid $kpid 2>&1; then
echo "$prog is already running (${kpid})"
RETVAL="0"
else
echo "lock file found but no process running for pid $kpid"
fi
else
pid="$(pgrep java)"
if [ -n "$pid" ]; then
echo "$prog running (${pid}) but no PID file exists"
RETVAL="0"
else
echo "$prog is stopped"
fi
fi
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 2
start
;;
status)
status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
### tomcat 내용 끝.
httpd 의 시작 스크립트의 내용을 기본으로 해서 사알~~~짝 고친 내용이다.
pid를 status를 이용해서 알 수 있도록 추가했다..
아마 PID에 대한 내용은 catalina.sh 에서 지원하는 기능을 그대로 추가한것 뿐이니까 멀티프로세스에서도 잘 될거라고 생각은 하지만...
catalina.sh 스크립트의 초반 주석을 보면 자신의 구미에 맞게 설정을 바꿀 수도 있을 것이다..
이제 이 스크립트를 서비스에 등록하고 자동으로 시작되도록 한다.
cd /etc/init.d
chmod 755 tomcat
chown root.root tomcat
chkconfig --add tomcat
chkconfig --level 3 tomcat on
chkconfig --level 5 tomcat on # 런레벨 5를 기본으로 사용할 경우...
service tomcat start
service tomcat status
### tomcat 의 pid와 함깨 실행중 매시지가 출력된다.
chmod 755 tomcat
chown root.root tomcat
chkconfig --add tomcat
chkconfig --level 3 tomcat on
chkconfig --level 5 tomcat on # 런레벨 5를 기본으로 사용할 경우...
service tomcat start
service tomcat status
### tomcat 의 pid와 함깨 실행중 매시지가 출력된다.
이상 Tomcat 설치 끝~
아파치와 연동은 다음 아티클로~~~
Comments