준비운동하기
Tomcat 는 아파치에서 JSP를 사용하도록 하는 프로그램이다. 일종의 PHP라고 생각해도 무방하다. Tomcat는 거의가 소스가 아닌 바이너리로 되어있다. 그래서 될 수 있으면 바이너리로 받기를 바란다. 될 수 있으면 이 아니라 꼭 그렇게 해야한다.
설치하기
우선 jakarta-tomcat.tar.Z(나는 이것을 받았다.) 이것을 반드시 '/usr/local/' 아래에 복사한 뒤 각각 다음과 같이 압축을 풀어준다.
#gzip -d jakarta-tomcat.tar.Z #tar xvf jakarta-tomcat.tar
압축을 풀면 'jakarta-tomcat' 디렉토리가 생긴다. 그럼 우선 먼저 '/usr/local/apache/libexec/'에 가서
'mod_jserv.so' 가 있는지 살펴본다. 없다면 압축을 푼 디렉토리에서 있는지 찾아본다. 있으면 그것을
'/usr/local/apache/libexec/'에 복사한다. 그리고 '/usr/local/apache/conf/httpd.conf' 파일의 맨 아래쪽에
Include /usr/local/jakarta/jakarta-tomcat/conf/tomcat.conf <--------- 톰켓만 쓸 때 Include /usr/local/jakarta/jakarta-tomcat/conf/tomcat-apache.conf <----아파치와 연동할 때(권장)
을 한 줄 추가시킨다.
그리고 아파치를 재시작 시킨다. 아무런 에러메시지 없이 작동한다면 50%정도는 제대로 깔린 것이다.
이제 가장 중요하고도 어려운 작업이 남았다. '/etc/proflie' 에다가 위에서 두 번째 줄에다가
export JAVA_HOME="/usr/local/jdk1.3" export TOMCAT_HOME="/usr/local/jakarta-tomcat"
위의 작업이 끝났다면 '/usr/local/jakarta-tomcat/bin/startup.sh'을 실행시킨다. 줄줄이 알파벳들이 올라가고 에러메시지가 없다면 성공이다. 하지만 중간이 에러메시지가 뜨면서 중지된다면 잘못 적었는지 확인한다. 성공했다면 브라우저로 다음의 주소로 접속해본다.
http://<hostname>/example/servets/ http://<hostname>/example/jsp/
멋있는 페이지가 뜬다면 성공이다.
※ 여기서 끝났다고 생각하면 큰 오산이다. 필자도 위의 부분까지만 되는 것을 보고 안심했지만 정말로 중요한 작업이 아직 남았다. 필자는 서블릿 파일(HelloServlet.java)을 작성했다. 하지만 이 파일을 어느 디렉토리에 넣어야 할지가 막막했다. 엉뚱한 곳에다가 넣으면 파일 인식을 못했기 때문이다. 그래서 우리가 살펴보아야 할 파일은 다음과 같다. 'tomcat.conf','server.xml’,'tomcat-apache.conf' 이다.
너무 긴장할 필요는 없다(솔직히 이 글을 쓰고 있는 지금도 확실히 모르겠다.).
우선 'tomcat.conf'파일에다가 다음을 추가시켜준다.
############################## Context mapping - all requests go to tomcat ApJServMount /test /root <---------저장할 디렉토리를 jakarta-tomcat/webapps/test로 한다.
server.xml 파일에다가 다음을 추가시킨다.
<Context path="/test" docBase="webapps/test" debug="0" reloadable="true" > </Context>
위의 작업을 마쳤다면 웹브라우저를 띠우고 주소창에 'localhost:8080/admin'을 입력한다.
'Context admin'을 누른다. 다음의 양식에 맞게 입력한다.
Path : /test Document Base : /usr/local/jakarta-tomcat/webapps/test
를 누르고, Add Context를 누른다. 그리고 /usr/local/jakarta-tomcat/webapps 밑에다가 woo라는 디렉토리를 만든다. 그런데 이때 디렉토리의 구조(?)를 맞추기 위해 test 디렉토리를 복사해서 이름을 woo로 바꾸어서 사용한다. 그리고 '/woo/WEB-INF/classes/' 밑에다가 서블릿 파일을 넣는다.
그럼 등록이 된 것을 볼수 있다. 그리고 아파치와 tomcat을 재 시작시킨다. 그리고 웹브라우저 주소창에 'localhost/test/servlet/<클래스명>' 을 입력한다. 그전에 서블릿 파일을 컴파일시켜야 한다. 제대로 되었다면 결과가 뜰 것이다.
참고로 tomcat-apache.conf 파일을 실었다.
LoadModule jserv_module libexec/mod_jserv.so ApJServManual on ApJServDefaultProtocol ajpv12 ApJServSecretKey DISABLED ApJServMountCopy on ApJServLogLevel notice ApJServDefaultPort 8007 AddType test/jsp .jsp AddHandler jserv-servlet .jsp Alias /woo /usr/local/jakarta-tomcat/webapps/woo <Directory "/usr/local/jakarta-tomcat/webapps/woo"> Options Indexes FollowSymLinks </Directory> ApJServMount /woo/servlet /woo <Location /woo/WEB-INF/ > AllowOverride None deny from all </Location> Alias /examples /usr/local/jakarta-tomcat/webapps/examples <Directory "/usr/local/jakarta-tomcat/webapps/examples"> Options Indexes FollowSymLinks </Directory> ApJServMount /examples/servlet /examples <Location /examples/WEB-INF/ > AllowOverride None deny from all </Location> Alias /test /usr/local/jakarta-tomcat/webapps/test <Directory "/usr/local/jakarta-tomcat/webapps/test"> Options Indexes FollowSymLinks </Directory> ApJServMount /test/servlet /test <Location /test/WEB-INF/ > AllowOverride None deny from all </Location> ApJServMount /servlet /ROOT
※ 'tomcat을 부팅할 때 자동으로 실행시키는 방법!!'
tomcat은 아파치와는 달리 rc.local 파일에 추가시켜도 자동으로 실행이 안된다. 그래서 파일을 만들어 주어야 하는데, 우선 '/etc/rc.d/init.d' 디렉토리로 가서 다음과 같이
#vi ./tomcat <---아무것도 안나올 것이다. 여기서 당황하지 말자!!(왜 핵심가이드가 함께하기에...)
다음을 적어준다.
1 #!/bin/sh 2 3 #This script is derived from apache startup, provided by redhat, to suit tomcat. 4 5 #This is for any EXPERIMENTAL tomcat release. 6 # ... specifically written for Tomcat 3.1M2RC2. 7 8 9 # Source function library. 10 . /etc/rc.d/init.d/functions 11 12 source /root/.bashrc 13 PATH="$PATH:/usr/X11R6/bin:/usr/local/jdk1.2.2/bin" <----- 14 export JAVA_HOME="/usr/local/jdk1.2.2" 15 export TOMCAT_HOME=/usr/local/jakarta-tomcat 16 export CLASSPATH=$CLASSPATH:/usr/local/jdk1.2.2/jdbc/psql_jdbc.jar: /usr/local/j2re1.3/lib/ext/servlet.jar:. 17 # See how we were called. 18 case "$1" in 19 start) 20 echo -n "Starting tomcat EXPERIMENTAL: " 21 daemon $TOMCAT_HOME/bin/tomcat.sh start 22 echo 23 ;; 24 stop) 25 echo -n "Shutting down tomcat EXPERIMENTAL: " 26 daemon $TOMCAT_HOME/bin/tomcat.sh stop 27 echo 28 ;; 29 restart) 30 $0 stop 31 $0 start 32 ;; 33 *) 34 echo "Usage: $0 {start|stop|restart}" 35 exit 1 36 esac 37 38 exit 0
참고로 앞의 숫자는 줄 번호이다.(부디 혼동하지 말기를..) 대충 내용을 설명하자면, 13~16줄 까지는 '/etc/profile'파일의 PATH와 export 부분을 적어준다. 무작정 따라쓰지 말고 자신의 설정을 보아야 한다. 위의 작업을 마쳤다면
#chmod 755 tomcat
퍼미션을 정해준다. 그리고 실행시켜보자!!
#./tomcat start Starting tomcat EXPERIMENTAL: [ OK ]
위와 같이 나왔다면 제대로 설정이 잡힌 것이다. 하지만 아직 안심하긴 이르다. 우선 아래를 보자!!
#cd /etc/rc.d/rc3.d/ #ln -s ../init.d/tomcat S90tomcat #cd /etc/rc.d/rc5.d/ #ln -s ../init.d/tomcat S90tomcat #cd /etc/rc.d/rc6.d/ #ln -s ../init.d/tomcat K90tomcat
위의 작업을 끝냈다면 재부팅해보자!! 그리고 부팅할 때 뜨는 메시지를 눈 크게 뜨고 주의 깊게 살펴보자! 아래와 같은 메시지가 뜨는지…!!
Starting tomcat EXPERIMENTAL: [ OK ]
만일 위와 같은 메시지가 뜬다면 성공이다. 의심이 든다면 브라우저를 띠워 'localhost:8080'이라고 적어보자! 톰캣 고양이가 뜬다면 성공을 확신해도 좋다.