본문 바로가기

etc

tomcat connector

반응형

 

  

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