RedHat 9.0 에서 JDK1.6.0_13 + Apache2.2.11 + Tomcat6.0.18 설치
분류없음 2010/08/20 17:15
Linux 기반은 내게 그리 익숙하지 않은 시스템이었다. 몇 번에 사용해 본 적은 있지만 설치부터 Java 환경 셋팅 & apache와 연동은 처음인 듯 하다.
그러함에도 그렇게 많은 시간이 할애되지 않은 다행이면 다행이라는 생각이 든다. 몇 년전과 다른 점은 확실히 구글의 내가 원하고자하는 자료를 쉽게 찾아볼 수 있었다는 것이다. 고맙고 놀랍기도 무서울 수도 있었당^^
RedHat의 설치에 대해서는 다룰 수 없음으로 설치가 되어있다는 가정 하에 Java 환경을 셋팅해 보자. Java Web 개발할 때는 굳이 Apache + Tomcat을 연동할 필요는 없다. 다만 static page에 대해서는 Apache가 처리해 주고, JSP, Servlet과 같은 danamic 대해서는 Tomcat이 처리하도록 해 줌으로서 서버 성능상 향상되어질 수 있다. 리소스로 보다 많은 처리를 해 줄수 있는 것이다.
그럼, JDK1.6.0_13를 설치해 보자. JDK5의 update가 12까지 진행이 되었다.
http://java.sun.com 가서 "Linux self-extracting file" 파일을 다운로드 받으면 된다.
다음은 Linux의 root 계정으로 실행한다.
[root@wiseant downloads]# chmod 755 jdk-6u13-linux-i586.bin
chmod 명령어의 755는 jdk-6u13-linux-i586.bin 파일을 실행가능한 형태로 파일 속성을 변경해 것이다. jdk-6u13-linux-i586.bin 파일은 RPM 방식으로 자동을 설치해 주는 리눅스 파일
이제 실제로 jdk-6u13-linux-i586.bin 실행하여 설치하면 되는데, 여기서는 /usr/local 디렉토리에 jdk-6u13-linux-i586.bin 파일을 /usr/local 디렉토리로 복사 또는 mv 시킨다. 그리고 다음의 실행한다.
[root@wiseant local]# ./jdk-6u13-linux-i586.bin
그러면 라이센스에 대한 쭈욱 나오고 "Do you agree to the above license terms? [yes no]"가 마지막으로 동의 여부를 물어본다.이때 "y"라고 입력하면 자동으로 /usr/local/jdk1.6.0_13 디렉토리 JDK를 설치한다.
다음은 윈도우 환경에서 CLASSPATH와 JAVA_HOME 셋팅을 하는 같이 JAVA path를 셋팅해 주어야 한다.
vi로 /etc/profile 파일을
[root@wiseant etc]# vi /etc/profile
profile 파일의 가장 아래에 입력해 준다.
JAVA_HOME=/usr/local/jdk1.6.0_13
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
profile 파일을 빠져나온다(:wq!). 이제 시스템에 반영하기 위해서 source 명령어로 profile을 실행한다.
etc]# source /etc/profile
정상적으로 path가 설정이 되었는지 java -version 테스트해 본다.
[root@wiseant etc]# java -version
java version "1.6.0_13"
SE Runtime Environment (build 1.6.0_13-b03)
Java HotSpot(TM) Client VM (build mixed mode, sharing)
위와 같이 나와야 정상적으로 설치된 것이다.
만약 위와 같이 "/etc/profile" 에서 JAVA_HOME을 셋팅해 주고 path를 셋팅해 정상적으로 실행되지 않을 때가 있다.
그럴 때는 다음과 같이 해
[root@wiseant etc]# update-alternatives --install "/usr/bin/java" "java" "/usr/local/jdk1.6.0_13/bin/java" 1
[root@wiseant update-alternatives --config java
선택을 해야 하는 경우 /usr/local/jdk1.6.0_13/bin/java" 항목을 준다. 기존의 Redhat 설치시 Java가 설치된 경우이면 SUN Java SDK는
다음은 Apache와 Tomcat을 설치해 보자. 둘 다 http://www.apache.org 에서 다운로드 받을 수 있다. 여기서 주의 할 점은 apache는 소스 버전으로 다운로드 받아야 한다는 것이다.
다운로드를 받으면 각각 같은 파일명을 가진다.
Apache : httpd-2.2.11.tar.gz
Tomcat : apache-tomcat-6.0.18.tar.gz
둘 다 tar 형태임으로 tar 명령어로 압축을 풀 수 있다.
그리고 한 가지더 tomcat_connector를 다운로드 받아야 한다. 역시 http://www.apache.org 다운로드 받을 수 있다. mod_jk 에 해당하는 Apache + Tomcat 라이브러리이다.
Tomcat-Connector : tomcat-connectors-1.2.28-src.tar.gz
먼저 Apache를 설치해 보자. 받은 "httpd-2.2.11.tar.gz" 파일을 풀어주면 " httpd-2.2.11" 디렉토리가 생성되어진다.
소스를 하기 전에 configure를 통해서 Apache의 설치환경을 셋팅할 수 있다. Apache는 옵션 뿐만 아니라 다양한 환경으로 셋팅이 가능하도록 할 수 있는데, 대해서는 다른 많은 문서를 참조하기 바란다.
[root@wiseant httpd-2.2.11]./configure --prefix=/usr/local/apache-2.2.11 --enable-suexec --enable-so --with-suexec-caller=bin --enable-ssl --with-ssl=/usr/local/ssl --enable-cache --enable-ext-filter --with-z=/usr/include --enable-dav --enable-mods-shared=all --enable-module=rewrite
configure --prefix 옵션으로 /usr/local/apache2.2.11 디렉토리에 Apache를 설치하겠다는 뜻이다.
그 외에는 openssl 사용하는 등의 옵션이다. 별도의 configure 옵션 자료를 참고해야 한다.
컴파일 해 준다.
[root@wiseant httpd-2.2.11]make
다음은 설치해 준다.
[root@wiseant install
이제 Apache의 설치는 끝났다. 설치한 apache2.2.11/bin 디렉토리로 이동하고 같이 apache를 실행시켜보자.
[root@wiseant build]# cd /usr/local/apache2.2.11/bin/
[root@wiseant bin]# -al
합계 3088
drwxr-xr-x 2 root root 4096 6월 21 11:02 .
drwxr-xr-x root root 4096 6월 11:02 ..
-rwxr-xr-x 1 root root 92434 6월 21 11:02 ab
-rwxr-xr-x 1 root root 3443 6월 21 10:57
-rwxr-xr-x 1 root root 7029 6월 21 11:02 apr-1-config
-rwxr-xr-x 1 root root 5831 6월 21 11:02 apu-1-config
-rwxr-xr-x 1 root root 22602 6월 21 10:57 apxs
-rwxr-xr-x 1 root root 38057 6월 11:02 checkgid
-rwxr-xr-x 1 root root 8876 6월 21 10:57 dbmmanage
-rw-r--r-- 1 root 983 6월 21 envvars
-rw-r--r-- 1 root root 983 6월 21 10:57 envvars-std
-rwxr-xr-x 1 root root 61060 6월 21 11:02 htcacheclean
1 root root 53131 21 11:02 htdbm
-rwxr-xr-x 1 root root 39414 6월 21 11:02 htdigest
-rwxr-xr-x 1 root 50543 6월 21 11:02
-rwxr-xr-x 1 root root 2599969 21 11:02 httpd
-rwxr-xr-x 1 root root 39105 6월 21 11:02 httxt2dbm
-rwxr-xr-x 1 root 39548 6월 21 11:02
-rwxr-xr-x 1 root root 6월 21 11:02 rotatelogs
[root@wiseant bin]# ./apachectl start
정상적으로 되었으면 http://linux-ip 라고 입력하면 Apache 첫 화면이 나와야 한다. 어려움은 없을 것이다.
다음은 Tomcat을 설치해 보자. Tomcat의 소스를 컴파일 하지 않아도 됨으로 더욱 간단하다.
다운로드받은 "apache-tomcat-6.0.18.tar.gz" 파일을 디렉토리 풀어준다.
[root@wiseant local]# tar -xvf apache-tomcat-6.0.18.tar
그러면, 디렉토리로 Tomcat이 설치된 것이다.
실행은 간단하다. /usr/local/apache-tomcat-6.0.18/bin 디렉토리로 이동하여 명령어를 실행한다.
[root@wiseant bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-6.0.18
CATALINA_HOME: /usr/local/apache-tomcat-6.0.18
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.18/temp
Using JRE_HOME: /usr/local/jdk1.5.0_12
에러메시지가 뜨지 않으면 정상적으로 동작한 것이다.
http://linux-ip:8080 주소로 브라우저를 실행시켜보자. Tomcat 첫 화면이 나오면 성공적으로 Tomcat을 설치한
이제 끝으로, Tomcat-connector를 이용하여 Apache와 Tomcat을 연동해 보자. 여기서 가장 시간이 많이 소비할 것이다. 나도 마찬가지였다.
먼저, Tomcat의 서비스를 종료하자.
Tomcat 종료 : [root@wiseant bin]# /usr/local/apache-tomcat-6.0.18/bin/shutdown.sh
종료 : [root@wiseant bin]# /usr/local/apache-2.2.11/bin/apachectl stop
다운로드 받은 "tomcat-connectors-1.2.28-src.tar" 풀어준다.
[root@wiseant bin]# tar -xvf tomcat-connectors-1.2.28-src.tar
그러면 tomcat-connectors-1.2.28-src 생성되는데, tomcat-connectors-1.2.28-src 디렉토리의 native 디렉토리로 이동한다.
다음은 소스를 컴파일 함으로 configure를 실행한다. 옵션으로 설치된 Apache의 경로를 지정해 준다.
native]# ./configure --with-apxs=/usr/local/apache-2.2.11/bin/apxs
make와 make install를 실행한다.
[root@wiseant make
[root@wiseant native]# make install
정상적으로 설치되었다면 /usr/local/apache2.2.11/modules 디렉토리에 파일이 생성되어져 있다. .so 파일은 윈도우의 dll과 같은 역할을 해
다음은 설치된 Tomcat-Connector를 이용한 Apache + Tomcat의 실제 연동을 설정 파일들의 예이다.
먼저, 설치된 Apache 디렉토리의 conf 디렉토리에 workers.properties 만들어준다.
workers.properties 파일에 다음의 항목들을 셋팅해 준다.
workers.tomcat_home=/usr/local/apache-tomcat-6.0.18
ps=/
worker.list=default
worker.ajp13.port=8009
worker.ajp13.host=wiseant.net
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=ajp13
worker.inprocess.type=jni
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr
중요한 것은 worker.inprocess.type=jni 이전까지 임으로 각자의 맞게 셋팅해 준다.
다음은 /usr/local/apache-2.2.11/conf 디렉토리에 있는 httpd.conf 가장 아래쪽에 다음을 추가해 준다.
LoadModule jk_module modules/mod_jk.so
"conf/workers.properties"
JkLogFile "logs/mod_jk.log"
JkLogLevel info
JkMount /examples/jsp default
JkMount /examples/jsp/*
httpd.conf 파일을 저장한다(:wq!). 이제 Tomcat-Connector를 이용한 Apache + 연동의 셋팅도 마무리한 것이다.
이것으로 apache는 80 포트를 이용한 web 실행되고 Tomcat은 8080로 구동하는 JSP Container로 실행하게 된다.
Tomcat + 실행하여 테스트 해 보자.
Tomcat 실행 : [root@wiseant bin]#
Apache 실행 : [root@wiseant bin]# /usr/local/apache-2.2.11/bin/apachectl start
두 프로세스가 구동되었으면 브라우저에서 다음의 주소를 실행시켜보자.
"http://linux-ip/examples/jsp" 라는 URL로 접근했을 Tomcat의 jsp-examples 가 실행되어야 한다.
이것으로 RedHat9.0에서 JDK, Apache+Tomcat의 모두 끝난 것이다.
참고로 mod_jk를 이용한 Apache와 Tomcat의 연동은 여기서 방법외에도 다양한 자료가 존재한다.
따라서 여러가지 경로로 다양하게 접근해 보는 좋은 방법이라 생각된다.
'etc' 카테고리의 다른 글
구글은 테스트 어떻게하는가 3 (0) | 2011.03.29 |
---|---|
InfoQ 내의 기사/칼럼 요약 (0) | 2011.03.29 |
프로그래머 경쟁력 메트릭스 (0) | 2011.03.20 |
Web Programming Errors (0) | 2011.03.20 |
제목을 입력해 주세요. (0) | 2011.03.20 |