Gentoo-WiKi

본문 바로가기
사이트 내 전체검색


Gentoo Linux >> System Administration for Gentoo Linux
[목차]
제6장 Server Administration

    7. Apache2 + Tomcat5 설치하기


  톰켓은 JSP 또는 Servlet 엔진이라고도 불리는데 JSP나 Servlet 도 ASP, PHP같이 웹에서 돌아가는 동적인 웹페이지를 만들수 있게 해주는 언어라고 할 수 있습니다. 이 JSP나 Servlet을 돌리기 위해서는 톰켓이 필요한데 이것은 자바(Java)라는 언어를 사용하기 때문에 꼭 자바가 시스템에 설치가 되어있어야만 합니다.


  여기서 일반적으로 톰켓 만으로도 웹서비스가 가능하기 때문에 아파치를 사용하지 않을 수도 있으나

이 톰켓으로 HTML 언어를 처리하는 게 아파치보다 상대적으로 느리고 비효율적이기 때문에 많은 곳에

서 아파치와 톰켓을 mod_jk라는 모듈을 아파치에 붙여 HTML은 아파치에서 처리하게 하고 Servlet이나 JSP는 톰켓에서 처리하게 합니다.


  여기서는 아파치2가 설치되어있다고 가정하고 넘어가겠다. 만일 설치가 안되신 분들은 이전 장을 참고 하여 설치하기 바랍니다.



7.1. Installation JDK


  JSP나 Servlet은 자바를 사용하는 언어이므로 톰켓 역시 자바가 필요하게 되므로 먼저 Java를 설치해야 합니다. 여기서 자바는 Sun사에서 나온 J2SE SDK(sun-jdk)를 사용하겠습니다.


  Java의 설치는 다음과 같이 할 수 있습니다.

# emerge sun-jdk -av

혹은

# USE="-alsa" emerge sun-jdk -av (사운드 라이브러리를 설치하지 않을 경우)


  이렇게 하면 설치가 시작되는데 문제는 sun-jdk를 설치할때 에러메세지를 내고 설치가 되지 않는다는 것입니다. 이유는 SUN사에서 자신에서 배포한 JDK를 자신의 웹사이트에서만 받을 수 있게 하였기 때문입니다. 따라서 메세지에 나온 URL에 가서 JDK를 받아와야만 합니다.


  X윈도우 환경의 모질라에서도 작업을 할 수 있으니 원하는곳에서 작업을 하기 바랍니다.


  파일의 다운로드가 끝나게 되면 그 파일을 특정 디렉토리에 위치 시켜야하는데 위치란 emerge를 할 때 특정 패키지가 설치를 위해 소스파일을 찾게 되는곳인데 위치는 /usr/portage/distfiles 입니다.


  파일 다운로드가 끝났으면 다시 명령을 해서 sun-jdk를 설치하도록 합니다.


  설치를 마치고 나면 다음 명령으로 자바 환경 설정을 확인하도록 합니다.

# java-config -L

[sun-jdk-1.4.2.08] "Sun JDK 1.4.2.08" (/etc/env.d/java/20sun-jdk-1.4.2.08) *

 

# java -version

java version "1.4.2_08"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)

Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)


  java-config을 찾을 수 없다는 오류메시지가 나타나면, emerage -av java-config을 통해서 설치하기 바랍니다.


  실행하고 난후의 메세지를 보면 sun-jdk-1.4.2.08 버젼의 자바가 설치 되어있는 것을 볼 수 있는데 만약 java-version을 실행했을 때 명령이 없다고 뜨게 된다면 env-update && source /etc/profile을 실행한 후 다시 해보도록 합니다.



7.2. Installation Tomcat 5


  이제 Servlet과 JSP를 처리하는 Tomcat 5 를 설치하도록 하겠습니다. 설치는 다음 명령으로 가볍게 처리 됩니다.

# emerge tomcat -av


  설치가 되고 나면 톰켓은 /opt/tomcat5라는 디렉토리에 생성이 됩니다.


  먼저 톰켓을 테스트 하기 위해서는 다음 명령으로 톰켓을 시작 시키도록 하고 만일 계속 시스템이 부팅 될때마다 자동으로 시작시키기 위해 default 런레벨에 tomcat5를 넣어 주도록 합니다.

# /etc/init.d/tomcat5 start

# rc-update add tomcat5 default


  이제 설치된 톰켓이 제대로 제대로 작동하는지 보도록 하겠습니다


  톰켓은 기본적으로 /opt/tomcat5/webapps/ROOT 디렉토리에 있는 Servlet이나 JSP를 서비스 하는데

다음 파일을 생성한후 웹 브라우저로 확인 해보도록 합니다.

# nano -w /opt/tomcat5/webapps/ROOT/HelloJSP.jsp

<%@ page contentType="text/html;charset=EUC-KR"%>

<html>

<head><title>HelloJSP</title><head>

<body>

 

Hello JSP <BR>

 

받은 문자는 ?

 

<%

      String str = request.getParameter("str");

 

      if( str != null)

              out.println(new String(str.getBytes("ISO8859-1"),"EUC-KR"));

      else

              out.println("아무것도 없다. ");

%>

 

</body>

</html>


  톰켓은 기본포트로 8080포트를 사용하여 서비스를 합니다. 그러므로 웹브라우져에 주소를 넣을 때 약간 다른데 형식은 http://도메인 이나 아이피:8080/파일 입니다.


  여기서는 test.linuxpc.info을 사용한다고 가정하고 모질라 웹브라우져에 다음과 같이 입력을 했습니다

http://test.linuxpc.info:8080/HelloJSP.jsp?str=리눅스강좌

그러면

Hello JSP

 

받은 문자는 ? 리눅스강좌


  이렇게 뜬다면 성공적으로 톰켓이 설치가 되었고 작동이 제대로 된다는 것입니다.



7.3. Installation Mod_JK


  위와 같이 쓰게 되어도 그렇게 문제는 없지만 서론에서 설명한데로 각자 맞는 분야만을 작동 시키기

위해 mod_php 처럼 tomcat도 mod_jk를 내놓게 되었습니다.


  얼마전까지만 하더라도 mod_jk 와 mod_jk2로 나뉘었는데 현제 mod_jk2가 없어지고 mod_jk로 통일 되게 되었습니다. 본인 생각에도 참 잘했다는 생각이 드는데 자 한번 설치를 해보고 테스트 해보도록 하겠습니다.


  먼저 mod_jk는 현재 Gentoo에서도 ebuild를 제공하고 있습니다. 하지만 mod_jk는 테스트용 빌드에 들어가 있어서 ~시스템종류 형식으로 테스트용 빌드를 사용하겠다고 선언 (일반적으로 마스크를 해제

했다고 함) 하고 사용을 해야만 합니다. 예) ACCEPT_KEYWORDS="~x86" emerge mod_jk


  문제는 이 ebuild를 사용하려면 다른 테스트용 빌드도 같이 설치를 해야만 한다는 단점과 시스템이

(apache2+ php + mod_php) 돌아가고 있다면 이것들에게도 영향을 미친다는 것입니다. 나중에 젠투

패키지 관리 팀이 이 문제를 해결 하겠지만 여기서는 ebuild를 사용하지 않고 소스를 받아다가 직접

컴파일 해서 사용하도록 하겠습니다.


  첫번째로 mod_jk를 받아와야하는데 다음 위치에서 받아 올 수가 있습니다.

# wget http://www.apache.org/dist/jakarta/tomcat-connectors/jk/source/jk-1.2.14/ jakarta-tomcat-connectors-1.2.14.1-src.tar.gz


  다운로드가 끝났다면 컴파일을 해야하는데 만일 아파치와 톰켓이 작동중이라면 멈추도록 합니다.

# /etc/init.d/tomcat5 stop

# /etc/init.d/apache2 stop


  이제 압축을 풀고 mod_jk을 컴파일을 하도록 합니다.

# tar zxvf jakarta-tomcat-connectors-1.2.14.1-src.tar.gz

# cd jakarta-tomcat-connectors-1.2.14.1-src/jk/native

 

# ./configure --with-apxs=/usr/sbin/apxs2 --with-java-home=$JAVA_HOME --enable-jni --with-java-platform=2

# make

# make install


  이렇게 하면 /usr/lib/apache2/modules에 컴파일 된 mod_jk.so 가 설치 되게 됩니다. 만일 파일이 설치가 되지 않았다면 apache 홈페이지를 참조하기 바랍니다.


  mod_jk.so는 아파치에서 사용하는 DSO로 톰켓으로 JSP나 Servlet 처리를 요청하는 모듈입니다.



7.4. Configuration Mod_JK


  컴파일이 끝났다고 해서 바로 사용 가능한것이 아닙니다. 아파치에게 mod_jk.so를 알리고 어떤 경우에 작동을 할 지 알려주어야만 mod_jk를 통해 톰켓과 아파치의 통신이 이루어 지는 것입니다.


  먼저 workers.properties 파일을 생성을 해야하는데 worker란 톰켓 인스턴스(톰켓 워커)라고도 할 수 있는데 이것은 Servlet이나 JSP를 처리하기 위한 하나의 반쪽짜리 웹서버 라고도 할 수 있습니다. 여기서 톰켓 워커는 여러개가 될 수 있는데 이것들은 workers.properties 파일에 정의를 하게 됩니다.


  아무래도 자바의 개념이 들어가기 때문에 무슨 말인지 모르는 사람들이 있을테니 넘어가서 설정을 보도록 하겠습니다..


  먼저 톰켓이나 아파치 디렉토리에 파일을 생성 시키는데 여기서는 그냥 아파치 디렉토리에 놓고 사용

하도록 하겠습니다.


  workers.properties파일을 생성하고 다음과 같이 넣도록 합니다.

# nano -w /usr/lib/apache2/conf/workers.properties

workers.tomcat_home=/opt/tomcat5

workers.java_home=/opt/sun-jdk-1.4.2.08

ps=/

worker.list=default

 

worker.default.port=8009

worker.default.host=localhost

worker.default.type=ajp13

worker.default.lbfactor=1 


  다음으로 아파치의 환경 설정을 수정하여 mod_jk.so를 로드 하고 사용하도록 합니다.

# nano -w /usr/lib/apache2/conf/apache2.conf

...생략 (아파치 버전에 따라 환경설정 파일의 위치가 틀려질수 있습니다)

LoadModule jk_module modules/mod_jk.so

 

### mod_jk

JkWorkersFile "conf/workers.properties"

JkLogFile "logs/mod_jk.log"

JkLogFile error

JkMount /* default

JkMount /admin default

JkMount /admin/* default

JkMount /manager default

JkMount /manager/* default

# End mod_jk


  여기서는 mod_jk.so를 로드하고 workers.properties파일이 어디에 있는가 , 로그 파일은 무엇인가 등을 정의합니다. 중요한 곳은 JkMount인데 여기서는 모든 형식을 tomcat에서 해석 하겠다는 의미와 동일합니다.


  만일 jsp만 처리하게 하고 싶다면 JkMount를 /*.jsp default 로하면 되겠습니다.


  참고로 Tomcat은 웹환경으로도 여러설정이 가능한데 기본으로 설치할 경우 웹으로 들어 갈 수가 없습니다. 이 기능을 사용하게 하려면 사용자를 추가하면 되는데 다음과 같이 다음 파일을 수정하면 됩니다.

# nano -w /opt/tomcat5/conf/tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>

<tomcat-users>

<role rolename="manager"/>

<role rolename="admin"/>

<user username="user" password="password" fullName="TheUser" roles="admin,manager"/>

</tomcat-users>


  이제 모질라에서 http://도메인/admin/index.jsp이나 http://도메인:8080/admin으로 하게 되면 들어갈 수 있습니다.


[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.