상세 컨텐츠

본문 제목

RedHat8.0에서 Apache2.0.40+Tomcat4.1.12 연동

프로그래밍/시스템, 서버구축

by 라제폰 2009. 1. 5. 13:00

본문

Apache2.0.40 + Tomcat4.1.12 on RedHat8.0

 

구경탁 jinuxer@koug.net

1차수정 : 2002년 11월 01일

2차수정 : 2002년 11월 05일

 


 

본 문서는 LINUX에서 Apache와 Tomcat의 연동을 시도하였으나, 매번 삽질만 하다가 끝내는 포기하고 하위버전을 사용하거나, Tomcat 단독으로 사용하여 Test를 하시는 분들을 위하여 조금이나마 도움이 되라고 작성한 문서입니다. 본문의 내용은 존칭은 생략토록 하겠습니다.(__)


 

 

1. 작업환경

  • OS : RedHat8.0
  • Apache : 2.0.40
  • Tomcat : 4.1.12
  • Java : 1.4.1

2. 다운로드목록

주, httpd-2.0.40.tar.gz와, jakarta-tomcat-connectors-4.1.12-src.tar.gz는 mod_jk.so가 Apache2.0.40에 맞춰진것이 없어서 직접 생성을 해야하므로, 받아야 할 것이다. 생성하면되지 왜안되냐?라고 묻는다면 눈씻고 찾아봐두 mod_jk.so생성에 필요한 apxs가 없다. 그래서 편법(일명 잔머리)을 사용했다.

 

3. 작업디렉토리 및 설치경로

  • /tmp => 소스다운로드 디렉토리
  • /usr/local/apache => Apache 설치디렉토리
  • /usr/local/tomcat => Tomcat 설치디렉토리
  • /usr/local/java => Java 설치디렉토리 

4. 간략한 설치과정 소개

  • Apache를 compile하여 install을 한다.
  • mod_jk.so를 생성한다.
  • Java를 설치한다.
  • Tomcat을 설치한다.
  • Apache와 Tomcat을 연동한다.
  • Context 추가 및 ROOT 디렉토리 변경한다.
  • 맘껏 Test를 해본다.

5. Apache 설치

 

이부분은 서두에서두 언급했지만 mod_jk.so를 생성하기위한것이다. 허나, default로 인스톨되어 있는 Apache를 사용하지않고 Apache를 직접 compile 및 install하여 사용하겠다면 적당한 디렉토리에 인스톨을 하면 되겠다.

 

# cd /tmp
# tar xzvf httpd-2.0.40.tar.gz
# cd /tmp/httpd-2.0.40
# ./configure --prefix= /usr/local/apache --enable-rule=SHARED_CORE --enable-module= so

 

주, httpd-2.0.40/INSTALL 문서를 한번쯤 읽어보자.

 

# make
# make install
# httpd -l

 

mod.so.c 이 리스트에 보이면 성공!

 

부록 : 부팅시 자동으로 Apache 시동하기

 

 

이 내용은 default 로 install 되어 있는 Apache를 사용할 경우는 상관없다.
setup 에서 check만으로 되기때문이다. 새로 compile하여 install을 한 경우만 해당한다.

 

# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
# cd /etc/rc.d/rc5.d
# ln -s /etc/rc.d/init.d/httpd S86httpd
# cd /etc/rc.d/rc6.d
# ln -s /etc/rc.d/init.d/httpd K86httpd

 

4. mod_jk.so 생성

 

# cd /tmp
# tar xzvf jakarta-tomcat-connectors-4.1.12-src.tar.gz
# cd /tmp/jakarta-tomcat-connectors-4.1.12-src/jk/native
# ./buildconf.sh
# ./configure --with-apxs=/tmp/apache/bin/apxs

 

주, jakarta-tomcat-connectors-4.1.12-src/jk/native/BUILDING 문서를 한번쯤 읽어보자.

 

# make
# make install
# ll /usr/local/apache/modules

 

mod_jk.so 이 있으면 성공!

 

5. 환경변수설정

 

Java와 Tomcat을 위한 환경변수를 설정하는 부분이다.


# vi /etc/profile

 


 

 ...
JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/tomcat
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

export JAVA_HOME CATALINA_HOME
...


 

 

# source /etc/profile

 

편집 후 환경변수를 적용시킨다.

 

6. Java 설치


# cd /tmp
# ./j2sdk-1_4_1-linux-i586.bin
# mv /tmp/j2sdk1.4.1 /usr/local
# cd /usr/local
# ln -s j2sdk1.4.1 java
# java

 

먼가 좌르륵 나오면 성공! 넘 간단하지 않은가!

 

7. Tomcat 설치


# cd /tmp
# tar xzvf jakarta-tomcat-4.1.12.tar.gz
# mv jakarta-tomcat-4.1.12 /usr/local
# cd /usr/local
# ln -s jakarta-tomcat-4.1.12 tomcat
# catalina.sh start

 

http://localhost:8080 으로 접속하여 고양이가 보이면 성공!

 

부록 : 부팅시 자동으로 Tomcat 시동하기

 

# vi /etc/rc.d/init.d/tomcat

 


 

#!/bin/sh
#
# Startup script for Tomcat, the Apache Servlet Engine
#
# chkconfig: - 85 15
# description: Start Tomcat
#
# processname: tomcat
#
# Source function library.
. /etc/rc.d/init.d/functions

export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

# See how we were called.
case "$1" in
  start)
        echo -n "Starting tomcat: "
        daemon $CATALINA_HOME/bin/startup.sh
        touch /var/lock/subsys/tomcat
        echo
        ;;
  stop)
        echo -n "Shutting down tomcat: "
        daemon $CATALINA_HOME/bin/shutdown.sh
        rm -f /var/lock/subsys/tomcat
        echo
        ;;
  restart)
        $0 stop
        sleep 2
        $0 start
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit 0


 

 

# chkconfig --add tomcat

# chkconfig --level 3 tomcat on

 

8. Apache와 Tomcat의 연동을 위한 작업

 

# vi /usr/local/tomcat/conf/server.xml

 


 

 내용중 다음을 찾아서
<Server port="8005" shutdown="SHUTDOWN" debug="0">
밑줄에 다음을 입력한다.
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" />

 

내용중 다음을 찾아서
<Host name="localhost" debug="0" appbase="webapps">
밑줄에 다음을 입력한다.
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" />


 

 

# catalina.sh start

Tomcat 을 재시작하면,
/usr/local/tomcat/conf 디렉토리 아래에
auto 디렉토리와 jk 디렉토리가 생겼을 것이고, auto 아래에 mod_jk.conf가 생겼을것이다.
마술일까? Listener 태그를 추가했기때문이다.^0^

 

# cd /usr/local/tomcat/conf/jk
# vi workers.properties

 

아래 내용은 없는 것이니 아래내용을 복사해서 생성을 하면 된다.


 

# Start setup file
#
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
ps=/
worker.list=ajp12, ajp13

# Definition for Ajp13 worker
#
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
#
# End setup file


 

 

# vi /etc/httpd/conf/httpd.conf

 

제일 아래 부분에 아래와 같이 추가해준다.
default로 인스톨되어 있는 Apache말고 새로 compile하여 install을 한 Apache인 경우도 마찬가지이다.

 


 

#
#Load mod_jk
#
LoadModule jk_module modules/mod_jk.so
#
#Configure mod_jk
#
JkWorkersFile /usr/local/tomcat/conf/jk/workers.properties
JkLogFile /usr/local/tomcat/logs/mod_jk.log
JkLogLevel emerg
#
# Root context
JkMount  /*.jsp ajp13
JkMount  /servlet/* ajp13

Include /usr/local/tomcat/conf/auto/mod_jk.conf


 

 

9. Context 추가 및 ROOT 디렉토리 변경

 

koug 라는 컨텍스트를 추가해 보겠다.
/var/www/ 디렉토리에 koug 디렉토리를 만든다.

 

주, 원하는 아무 디렉토리에 원하는 이름으로 생성하면 된다.

 

# cd /var/www
# mkdir koug

# vi /usr/local/tomcat/conf/server.xml

 


 

 ...

        <!-- Define properties for each web application.  This is only needed
             if you want to set non-default properties, or have web application
             document roots in places other than the virtual host's appBase
             directory.  -->

        <!-- Tomcat Root Context -->
        <!--
          <Context path="" docBase="ROOT" debug="0"/>
        -->

        <!-- Tomcat koug Context -->
        <Context path="/koug" docBase="/var/www/koug" debug="0"
                 reloadable="true"/>

        <!-- Tomcat Examples Context -->
        <Context path="/examples" docBase="examples" debug="0"
                 reloadable="true" crossContext="true">
          <Logger className="org.apache.catalina.logger.FileLogger"
                     prefix="localhost_examples_log." suffix=".txt"
           timestamp="true"/>
...


 

 

제대로 연동이 되는지 Test를 해보자.

 

# cp -r /usr/local/tomcat/webapps/examples/* /var/www/koug

Tomcat과 Apache를 재시동한다.

 

http://localhost/koug/jsp/
http://localhost/koug/servlets/

 

어랏! 포트번호가 빠졌다. 눈치를 챘으리라. -.-+

Apache와 Tomcat가 연동이 되었다는 증거가 여기서 나오는 것이다.

 

물론, 아래처럼

 

http://localhost:8080/koug/jsp/
http://localhost:8080/koug/servlets/

 

접속을 해도 결과는 마찬가지다. 속이 시원하지 않은가? 으햐햐햣 -0-

그렇다면, ROOT 의 디렉토리는 어떻게 하면 될까?

그렇다. 별문제없이 되리라고 생각이 될것이다. 별반차이가 없다는것이다.

 

# vi /usr/local/tomcat/conf/server.xml

 


 

...

        <!-- Define properties for each web application.  This is only needed
             if you want to set non-default properties, or have web application
             document roots in places other than the virtual host's appBase
             directory.  -->

        <!-- Tomcat Root Context -->
          <Context path="" docBase="/var/www/html" debug="0" reloadable="true" />

        <!-- Tomcat Examples Context -->
        <Context path="/examples" docBase="examples" debug="0"
                 reloadable="true" crossContext="true">
          <Logger className="org.apache.catalina.logger.FileLogger"
                     prefix="localhost_examples_log." suffix=".txt"
           timestamp="true"/>
...


 

 

# cp -r /usr/local/tomcat/webapps/examples/* /var/www/html

 

Tomcat과 Apache를 재시동한다.

 

http://localhost/jsp/
http://localhost/servlets/

 

원하는 결과가 나왔는가?

 

이곳까지 왔는데도 안된다면 자신의 손과 눈을 의심해보고 첨부터 깔끔하게 재시도하기 바란다. -_-;;

 

참고URL
http://linux.sarang.net/board/?p=read&table=tip&no=7161&page=&o[at]=s&o[sc]=t&o[ss]=tomcat&o[st]=a
http://www.javaservice.net/~java/bbs/read.cgi?m=appserver&b=engine&c=r_p&n=1034684803&p=1&s=t#1034684803
http://www.javaservice.net/~java/bbs/read.cgi?m=appserver&b=engine&c=r_p&n=1030719705&p=2&s=t#1030719705
http://okjsp.pe.kr/lecture/lec01/tomcat4directory.xml

 

======================================
Visit to KOUG(Korea Oracle User Group)
http://www.koug.net
jinuxer@koug.net
======================================


관련글 더보기