################################################

## 리눅스에서 JSP  설치하기                              ##

## Written by K.S.W / boaniyagi@naver.com              ##

## Document Version : 0.2 (2014.2.16)                    ##

##                                                            ##

## V0.2 (2014.2.16)                                         ##

## - JSP 8080 Port -> 80 Port 로 바꾸기 추가             ##

##                                                           ##

## V0.1 (2014.1.16)                                         ##

## - 기본문서 작성                                         ##

################################################


#-> 참고 : [네이버 지식백과] 톰캣 [Tomcat] (두산백과, 두산백과)

#-> 아파치 소프트웨어 파운데이션(Apache Software Foundation)에서 서버인 자바(Java)를 움직이게 하기 위해 개발한 AP서버.

#-> 웹서버에서 서블릿(servlet), JSP, 빈즈와 같은 자바 코드를 이해하기 위해서는 톰캣 같은 자바를 이해하는 엔진이 있어야 한다. 

#-> 비용이나 성능면에서는 자바 기반 웹서버를 구성할 때 리눅스(Linux), 아파치, 톰캣 조합을 많이 사용한다. 

#-> 웹프로그램은 순수한 프로그램 언어로만 이루어진 것이 아니라 클라이언트 언어인 HTML이 혼용되었는데, 톰캣은 자바 파일만 해석할 수 있다. 

#-> HTML과 혼용된 경우 컴파일 과정을 거친다. JSP페이지는 서블릿 형태로 일단 변형되어 완벽한 자바 파일로 변형된 뒤 컴파일된다. 

#-> 자바 서블릿과 JSP 규격의 '참조용 구현'으로 평가되고 있는 톰캣은, 개발자들의 개방적 협력 작업의 산물로 아파치 웹사이트에서 받을 수 있다. 

#-> 톰캣을 실행시키기 위해서는 JRE1.1 이상에 부합되는 자바 런타임 환경이 필요하다.


설치환경 : CentOS 5.8 

JDK version : jdk-7u51


-- 순서 --

1. JDK 설치

2. Tomcat rpm 패키지 확인

3. Tomcat 설치

4. Tomcat 환경변수 설정

5. Tomcat 시작

6. 접속 테스트

7. Tomcat script 생성

8. JSP Sample 파일 만들기 

9. tomcat 설정 변경하기

9-1. 웹포트 변경하기

9-2. 기본문서 변경하기

9-3. Context 추가하기

10. Tomcat - Connectors 설치


1. JDK 설치

JDK 설치문서를 참고할 것 (리눅스 수업 22일차 (1) 에 있음)


2. Tomcat rpm 패키지 확인

#-> 이미 rpm으로 Tomcat 이 설치되었는지 확인한다.

#-> 만약 설치가 되었다면 삭제할 것인지를 결정해야 한다.

#-> 여기서는 설치가 안되었다고 가정하고 설치가 되었다해도 삭제한다는걸 가정한다.

# rpm -qa | grep tomcat




3. Tomcat 설치

#-> Tomcat은 Java 기반 위에서 반드시 실행되어야 하므로 JDK 를 먼저 설치해야 한다. 

#-> 또한 tomcat은 Apache와는 다르게 실행한 사용자의 권한으로 실행되므로 보안상 절대 root 로 사용해서는 안된다.

#-> 따라서 tomcat 을 돌리는 사용자를 생성한다.

#-> 다운받는 사이는 http://tomcat.apache.org 이며 압축만 풀면 설치가 완료된다.

#-> 설치되는 디렉토리는 tomcat 사용자의 홈디렉토리 /home/tomcat/tomcat 디렉토리이다.

#-> 다운받는 파일명 : apache-tomcat-7.0.50.tar.gz


# useradd tomcat

# cp apache-tomcat-7.0.50.tar.gz ~tomcat

# su - tomcat

$ tar xzf apache-tomcat-7.0.50.tar.gz 

$ ln -s apache-tomcat-7.0.50 tomcat


4. Tomcat 환경변수 설정

#-> Tomcat을 실행하기 위한 환경변수를 ~tomcat/.bashrc 파일에 추가해준다.

#-> .bashrc 에 추가하는 이유는 사용자가 로그인하면 맨 마지막에 실행하는 스크립트이기 때문이다.


$ vi .bashrc



-- .bashrc --

  :

  :

## Tomcat ##                             <-- 추가

CATALINA_HOME=/home/tomcat/tomcat        <-- 추가

TOMCAT_HOME=$CATALINA_HOME               <-- 추가


## Java ##                             

JAVA_HOME=/usr/local/java                <-- 추가 

PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH  <-- 추가

CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar <-- 추가

export PATH USER  JAVA_HOME CLASSPATH CATALINA_HOME TOMCAT_HOME  <-- 추가

  :

  :                     

-- .bashrc --



$ source .bashrc


5. Tomcat 시작

#-> 설치된 Tomcat 의 startup.sh 를 실행해서 Tomcat 을 실행한다.

#-> Tomcat 을 시작한 후 http://<Tomcat install IP>:8080  접속시 고양이가 나오면 Tomcat 을 잘 설치한 것이다.

#-> 톰캣시작 Script : ~tomcat/tomcat/bin/startup.sh 

#-> 톰캣종료 Script : ~tomcat/tomcat/bin/shutdown.sh

#-> CentOS 용 톰캣 스크립트 : tomcatd


$ startup.sh 

Using CATALINA_BASE:   /home/tomcat/tomcat

Using CATALINA_HOME:   /home/tomcat/tomcat

Using CATALINA_TMPDIR: /home/tomcat/tomcat/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /home/tomcat/tomcat/bin/bootstrap.jar:/home/tomcat/tomcat/bin/tomcat-juli.jar



$ netstat -nltp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

  :

  :

tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      30493/java  <-- tomcat 에 의해 리슨된 포트

tcp        0      0 :::1158                     :::*                        LISTEN      -                   

tcp        0      0 :::43494                    :::*                        LISTEN      -                   

tcp        0      0 :::8009                     :::*                        LISTEN      30493/java  <-- tomcat 에 의해 리슨된 포트

tcp        0      0 :::111                      :::*                        LISTEN      -                   

tcp        0      0 :::8080                     :::*                        LISTEN      30493/java  <-- tomcat 에 의해 리슨된 포트

tcp        0      0 :::5520                     :::*                        LISTEN      -              

  :

  :


6. 접속 테스트

Host OS 에서 웹브라우저로 http://<Tomcat install IP>:8080  접속해서 고양이가 뜨면 설치가 성공된 것이다.



7. Tomcat script 생성

#-> 부팅시 tomcat 이 자동으로 뜰 수 있도록 script 를 생성한다.


# install -m 700 /dev/null /etc/init.d/tomcatd

# vi /etc/init.d/tomcatd



-- /etc/init.d/tomcatd --

#!/bin/sh

# chkconfig: 2345 81 81

# description: tomcat server daemon


## Tomcat ## 

CATALINA_HOME=/home/tomcat/tomcat

TOMCAT_HOME=$CATALINA_HOME      

## Java ## 

JAVA_HOME=/usr/local/java     

PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar 


export PATH JAVA_HOME CLASSPATH CATALINA_HOME TOMCAT_HOME


case "$1" in   


start)   

     echo "Starting tomcat : "   

     su - tomcat -c "$TOMCAT_HOME/bin/startup.sh"

     echo   

     ;;   


 stop)   

     echo "Shutting down tomcat : "   

     su - tomcat -c "$TOMCAT_HOME/bin/shutdown.sh"

     echo   

     ;;   


 restart)   

     $0 stop   

     $0 start   

     ;;   

 *)   

     echo "Usage: $0 {start|stop|restart}"   

     exit 1   

esac   


exit 0 

-- /etc/init.d/tomcatd --



# chkconfig --add tomcatd

# chkconfig --list tomcatd

tomcatd         0:off 1:off 2:on 3:on 4:on 5:on 6:off



8. JSP Sample 파일 만들기 

#-> jsp 샘플 파일인 hello.jsp 를 생성해서 브라우저로 확인시 Hello JSP 가 출력되면 정상적으로 설치된 것이다.

#-> http://<Tomcat install IP>:8080/hello.jsp 로 접속한다. 


$ cd /home/tomcat/tomcat/webapps/ROOT

$ vi hello.jsp


-- hello.jsp --

<%@ page contentType="text/html; charset=euc-kr" %>

<%! String str = "Hello World! JSP!"; %>

<html>

 <head>

  <title>::: <%=str%> :::</title>

 </head>

<body>


  <center>

  <h1> Hello JSP </h1>

  <P>


  <% out.println(str); %>


  </center>

</body>

</html>

-- hello.jsp --



http://192.168.0.28:8080/hello.jsp