본문 바로가기

리눅스

[리눅스] Apache 2.0 & Tomcat 5.0 연동하기

728x90

Apache 2.0 & Tomcat 5.0 연동하기

1. apache 2.0

아파치 배포 사이트
http://www.apache.org
http://www.apache-kr.org

[root@cheol4 ~]$ tar xvfz httpd-2.0.52.tar.gz –C /usr/local

[root@cheol4 ~]$ cd /usr/local/httpd-2.0.52

[root@cheol4 httpd-2.0.52]$ ./configure --prefix=/usr/local/apache2

[root@cheol4 httpd-2.0.52]$ make

[root@cheol4 httpd-2.0.52]$ make install

[root@cheol4 httpd-2.0.52]$ /usr/local/apache2/bin/apachectl start

브라우저를 열고 http://127.0.0.1을 입력하였을 때, apache web server가 설치되었다면 메시지가 나오면 성공.

아파치 서버를 정지시킨다.

[root@cheol4 httpd-2.0.52]$ /usr/local/apache2/bin/apachectl stop

2. J2SE

참고사항 JDK의 종류
JDK는 자바가 사용되는 시스템의 크기에 따리 다음과 같이 세 가지 종류로 구분되어 있다.
-J2ME(Java 2 Micro Edition): 휴대폰이나 스마트카드, PDA 등의 임베디드 시스템을 위한 JDK
-J2SE(Java 2 Standard Edition): JDK의 표준. 일반적인 PC에서 사용되는 JDK
-J2EE(Jave 2 Enterprise Edition); 대규모 서버를 위한 JDK
다운로드 http://java.sun.com
J2se 배포 사이트
http://java.sun.com
j2se 1.4.2를 받아 설치한다. (jre만 받으면 안 됨.)

확장자가 bin인데 실행 권한을 주고 실행시키면 license에 동의하지를 묻고 이에 대하여 yes를 눌러 대답하면 설치가 된다.

[root@cheol4 ~]$ ls -l j2sdk-1_4_2_19-linux-i586-rpm.bin
-rw-r--r--  1 root root 35229850 Jan 15 19:02 j2sdk-1_4_2_19-linux-i586-rpm.bin

[root@cheol4 ~]$ chmod +x j2sdk-1_4_2_19-linux-i586-rpm.bin

[root@cheol4 ~]$ ls -l j2sdk-1_4_2_19-linux-i586-rpm.bin
-rwxr-xr-x  1 root root 35229850 Jan 15 19:02 j2sdk-1_4_2_19-linux-i586-rpm.bin

[root@cheol4 ~]$ ./j2sdk-1_4_2_19-linux-i586-rpm.bin

[root@cheol4 ~]$ rpm –Uvh j2sdk-1_4_2_19-linux-i586.rpm

[root@cheol4 ~]$ ln –s /usr/java/j2sdk1.4.2_19 /usr/local/java

java 환경설정

실행한 후에 파일(profile) 끝에 아래 내용을 추가한 후 종료합니다

$ vi /etc/profile
...
JAVA_HOME=/usr/local/java
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME

추가했으면 그다음 환경설정을 다시 Load 하기 위해 다음 명령을 수행한다.

$ source /etc/profile

마친 다음 프롬프트 상에서 java와 javac를 입력했을 때 명령어 옵션이 제대로 나오나 확인이 되면 JDK 환경설정이 완료된 것이다.

3. Tomcat 5

tomcat 배포 사이트
http://jakarta.apache.org
jakarta-tomcat-5.0.28.tar.gz 내려받아 압축을 푼다.

[root@cheol4 ~]$ tar xvfz jakarta-tomcat-5.0.28.tar.gz

RUNNING.txt 파일을 참고하여 tomcat을 실행시킨다.

Tomcat을 설치했으면 /usr/local에 심볼릭 링크를 걸어줍니다.

[root@cheol4 ~]$ ln -s /usr/local/jakarta-tomcat-5.0.28 tomcat

심볼릭 링크를 걸어주면 /usr/local에 tomcat이라는 폴더가 생겼음을 알게 될 것입니다.

[root@cheol5 bin]$ cd /usr/local/

[root@cheol5 local]$ ls
apache2  bin  down  etc  games  include  lib  libexec  sbin  share  src  tomcat

-bin : 각종 tomcat 관련 명령어가 있다. tomcat을 구동하는 정지하는 명령도 포함
-conf : tomcat의 설정 파일이 있다. 가령, tomcat은 기본적으로 8080 port로 접속한 게 되어 있는데 conf/servier.xml
파일에서 port 번호를 수정 할 수 있다.
-webapps : 실제 web에서 접속했을 때 참고하는 폴더

/usr/local/tomcat/conf에서 tomcat 설정을 한다.
기본설정은 다 되어 있음으로 따로 설정할 필요 없다면 /usr/local/tomcat/bin에 가서 startup.sh를 통해 Tomcat을 구동한다.

[root@cheol5 local]$ cd /usr/local/tomcat/bin/

[root@cheol5 bin]$ ls
bootstrap.jar       digest.bat        shutdown.bat  tomcat-juli.jar
catalina.bat        digest.sh         shutdown.sh   tomcat-native.tar.gz
catalina.sh         jsvc.tar.gz       startup.bat   tool-wrapper.bat
catalina-tasks.xml  service.bat       startup.sh    tool-wrapper.sh
commons-daemon.jar  setclasspath.bat  tomcat6.exe   version.bat
cpappend.bat        setclasspath.sh   tomcat6w.exe  version.sh

마지막으로 PATH를 설정해줍니다.

$ vi /etc/profile
JAVA_HOME=/usr/java/j2sdk
CATALINA_HOME=/usr/local/tomcat-5.0.24
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export JAVA_HOME CATALINA_HOME

Tomcat을 정상적으로 구동하면 http://192.168.0.21:8080으로 접속해본다.

 

tomcat 정지시킨다.

[root@cheol4 ~]$ /usr/local/tomcat/bin/shutdown.sh

4. mod_jk2.so

jakarta-tomcat-connectors-jk2-src-current.tar.gz 내려받아 압축을 푼다.

[root@cheol4 down]$ tar xvfz jakarta-tomcat-connectors-jk2-src-current.tar.gz –C /usr/local

/usr/local/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/INSTALL.txt 참고하여 다음 작업을 진행한다.

[root@cheol4 ~]$ cd /usr/local/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/

[root@cheol4 native2]$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs

[root@cheol4 native2]$ make

[root@cheol4 native2]$ cd ../build/jk2/apache2

[root@cheol4 native2]$ /usr/local/apache2/bin/apxs -n jk2 -i mod_jk2.so

[참고] configure를 실행하고 make로 컴파일을 합니다.
########################################################
컴파일하시기 전에 먼저 libtool 패키지가 설치되어 있는지 확인합니다. 보통은 설치가 되어있습니다.
확인방법:
        shell> rpm -qa | grep libtool
        libtool-libs-버전정보
        libtool-버전정보
이렇게 두 개의 패키지가 설치되어 있으면 됩니다.
########################################################

문제없이 완료되었다면, mok_jk2.so 파일이 만들어졌을 것이다. 이 파일을 아파치 모듈이 있는 디렉터리로 있는지 확인한다.

[root@cheol4 native2]$ ls /usr/local/apache2/modules/
httpd.exp  mod_jk2.so

5. httpd.conf 수정

위에서 만든 mod_jk2.so를 /usr/local/apache2/modules/에 복사한 다음

/usr/local/apache2/conf/httpd.conf 편집합니다.

$ vim httpd.conf

#LoadModule foo_module modules/mod_foo.so
와 같은 형식을 되어 있는 곳을 찾아 그 아래에
LoadModule jk2_module modules/mod_jk2.so

를 추가한다.

Alias /icons/ "/usr/local/apache2/icons/"

와 같은 형식의 행을 찾아 그 아래에

Alias /jsp-examples/ "/usr/local/tomcat/webapps/jsp-examples/"

Alias /servlets-examples/ "/usr/local/tomcat/webapps/servlets-examples/"

를 추가한다.

 

DocumentRoot 행을 찾아

DocumentRoot "/www"

로 바꾸고 저장하고 아래와 같이 심볼릭 링크를 한다.

[root@cheol4 ~]$ ln -s /usr/jakarta-tomcat-5.0.19/webapps/ROOT /www

6. workers2.properties

workers2.properties 위치

[root@cheol4 ~]$ cd /usr/local/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/conf/
[root@cheol4 conf]# ls
jk2.manifest    jkconf.ant.xml     shm.manifest         workers2.properties          workers.properties
jk2.properties  jkconfig.manifest  tomcat-jk2.manifest  workers2.properties.minimal

/usr/local/apache2/conf에 workers2.properties를 아래의 내용으로 만들어 저장한다.

$ vim workers2.properties
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1

[ajp13:localhost:8009]
channel=channel.socket:localhost:8009

[uri:/*.jsp]
worker=ajp13:localhost:8009

[uri:/servlets-examples/*]
worker=ajp13:localhost:8009

7. Virtual Host

# Virtual Host의 경우 아래 URI에서 호스트명을 넣어야 하고요. server.xml에서 host명을 넣으시면 됩니다.

[uri:www.kldp.net/*.jsp]
worker=ajp13:localhost:8009

[uri:www.kldp.net/servlets-examples/*]
worker=ajp13:localhost:8009

[uri:www.kldp.org/*]
worker=ajp13:localhost:8009

########################################################
잠깐 설명을 하자면 기본적으로 톰캣을 설치하면 항상 따라오는 "/examples" web context를 추가했는데 여기서 "[uri:/examples/*.jsp]"을 "[uri:/examples/*]"으로 바꾸어 주면 http://hostname/examples를 호출했을 때 아파치가 자동으로 hostname/examples/의 모든 내용을 톰캣을 http://hostname:8080/exapmes으로넘겨줍니다. 즉 .jsp나 서블릿뿐만 아니라 .html과 이미지 등 모두 톰캣이 처리한다는 것입니다. 그래서 .jsp하고 서블릿만 처리하기 위해서는 "uri:/examples/*.jsp], [uri:/examples/servlet/*]"와 같이 해주셔야 합니다.
########################################################

8. Test Page 출력

소스

$ vim test2.jsp
<%@ page contentType="text/html; charset=euc-kr"%>
<html>
<head><title>Hello World</title></head>
<body>
<H2>Hello World</H2>
Today is Date and Time : <%=new java.util.Date() %>
</body>
</html>

http://cheol.pe.kr:8080/test2.jsp

728x90