본문 바로가기
카테고리 없음

CentOS 6.5에 버전별 JDK 설치 및 버전별 Tomcat 설치

by 철이아부지 2014. 8. 4.

귀찮게 이걸 왜 정리하고 있을까나.. ㅡㅡ


JDK 다운로드

먼저 http://java.oracle.com 에 접속해서 JAVA Download 클릭

JAVA SE 8uXX JDK 다운로드 클릭

CentOS니까 버전에 맞는 rpm을 다운로드

뒤로 돌아가서 JAVA SE 7uXX JDK 다운로드 클릭

CentOS 버전에 맞는 rpm을 다운로드 =>tar.gz로 받을것

다시 돌아가서 맨 밑에 보면 Previous Release - Java Archive 항목에 Download 클릭

필요한 JAVA SE 버전 다운로드. 난 1.6 다운로드 함. 이 파일은 RPM이 아니라 rpm.bin 이니 주의. => .bin으로 받을것.


추가:

RPM으로 강제 설치하면 yum 의 rpmdb가 꼬여서 (JDK Duplicated) jdk에 의존성 걸린 애들이 제대로 설치가 안되는 문제가 발생한다.

1.7은 tar.gz 와 1.6은 rpm.bin이 아닌 그냥 .bin으로 받아 압축을 해제 후 /usr/java에 옮겨 주는게 더 나은듯...


JDK 설치

rpm -i jdk-8uXX-linux-xXX-.rpm 을 실행하여 jdk 8 설치

rpm -i --force jdk-7uXX-linux-xXX.rpm 을 실행하여 강제로 jdk 7 설치

./jdk-6u45-linux-x64-rpm.bin 을 실행하면 압축이 해제 되며 ./jdk-6u45-linux-amd64.rpm 등 여러 파일이 생김. 여기서 amd64.rpm을 설치하면 되므로 rpm -i --force jdk-6u45-linux-amd64.rpm 을 실행하여 강제로 jdk 6 설치

1.7은 tar -xvf jdk-7uXX-linux.xXX.tar.gz를 실행하여 압축 해제 후 /usr/java로 폴더채 이동

1.6은 jdk-6u45-linux-x64.bin을 실행하여 압축 해제 후 /usr/java로 폴더째 이동

ls -la /usr/java 때려 봐서 jdk 3개가 모두 설치되어 있으면 일단 완료. 

/usr/bin/java 는 /usr/java/default를 실행하고 /usr/java/default/는 /usr/java/latest를 실행하고 /usr/java/latest는 jdk8에 연결되어 있으므로 콘솔에서 그냥 java 실행시 jdk8 이 동작하게 된다. 


Tomcat 다운로드

http://tomcat.apache.org에 접속하여 좌측 다운로드 섹션에서 8, 7, 6에 대한 Core 항목의 tar.gz 파일을 다운 받음


Tomcat 설치

다운 받은 파일을 각각 tar -xvf apache-tomcat-버전.tar.gz 실행하여 압축을 해제

mv apache-tomcar-버전 /usr/local/. 로 지정하여 압축해제한 폴더들을 /usr/local 밑으로 이동

/usr/local 폴더로 이동 후 다음과 같이 symbolic link 생성

ln -s /usr/local/apache-tomcar-6.0.41 tomcat6

ln -s /usr/local/apache-tomcar-7.0.55  tomcat7

ln -s /usr/local/apache-tomcar-8.0.9 tomcat8


Tomcat 설정

Tomcat 에서 사용할 jdk 위치를 지정하고 centos의 service 명령을 통해 쉽게 구동하기 위해 /etc/init.d 에 스크립트를 만들어 주자

/etc/init.d 로 이동 후 다음과 같이 symbolic link 생성

ln -s /usr/local/tomcat6/bin/catalina.sh tomcat6

ln -s /usr/local/tomcat7/bin/catalina.sh tomcat7

ln -s /usr/local/tomcat8/bin/catalina.sh tomcat8


* tomcat6 에 대해서만 jdk6 및 chkconfig 동작을 위한 설정을 추가해보자. (7,8도 마찬가지로 해주면 됨.)

vi /etc/init.d/tomcat6 실행하여 파일을 편집하자

상단의 #!/bin/sh 아래에 다음과 같은 문장 추가

# Linux Startup Script for Tomcat 6

# chkconfig: 35 99 99

# description: Apache Tocmat version 6

chkconfig가 추가할 run-level을 잡아 주고 설명을 추가한다.

그리고 다음과 같이 JDK 위치와 TOMCAT 위치를 잡아준다.

JAVA_HOME=/usr/java/jdk1.6.0_45

CATALINA_HOME=/usr/local/tomcat6

CATALINA_BASE=/usr/local/tomcat6

위의 예제는 jdk6으로 돌리게 해놓은 것이고, JAVA_HOME 의 경로를 바꾸면 jdk7, 8 모두 가능하다.


파일을 저장 후 service tomat6 start 를 실행하여 정상 동작하면 OK.

이짓을 tomcat7, 8에 대해서도 반복하자.


CentOS 구동시 tomcat이 자동 시작되게 설정

chkconfig --add tomcat6 를 실행하여 추가

chkconfig --list 로 tomcat6가 추가되었는지 확인

chkconfig --del tomcat6 를 실행하여 자동 시작에서 제외

chkconfig --list로 tomcat6가 제외되었는지 확인


기본 설정으로 하면 모두 8080 포트이므로 세개다 자동 시작으로 놓으면 아마 한놈만 돌아갈 가능성이 많다. 자동 시작은 하나만 해 놓자.


외부 접속을 위한 방화벽 설정

vi /etc/sysconfig/iptables 를 실행하여 방화벽 설정 파일을 편집

COMMIT 항목 이전에 다음과 같이 8080에 대한 외부 접속 허용 추가

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

service iptables restart 명령으로 방화벽 규칙을 다시 적재

iptables --list 명령을 실행하여 8080 포트가 정상적으로 열려 있는 지 확인


뭐 언젠가는 나한테도 필요한 정보가 되겠지...