32bit AnNyung Linux 2.4 , Apache 1.3 에 tomcat 설치하기
1. 우선 jdk 가 필요하다.
http://www.oracle.com/technetwork/java/javase/downloads/index.html
현재 기본 배포하는 버전은 jdk1.7 이다.
jdk 1.7 은 위 환경에서 설치시하여 tomcat 을 실행하면 다음과 같은 오류 로그가 남는다.
로그파일 위치 : CATALINA_HOME/logs/catalina.out
로그 내용
/usr/local/jdk1.7/bin/java: /lib/i686/libc.so.6: version `GLIBC_2.3' not found .... 어쩌고 저쩌고
그래서 jdk 1.6 을 설치하려고 하는데. 이건 그냥 안준다.. 로그인 해야 다운로드 가능하다.
위 사이트에서 Previout Releases 로 들어가면, Java SE 6 에서 받을 수 있다.
1.6 의 마지막 버전 파일은 jdk-6u45-linux-i586.bin 로 bin 형태로 제공한다.
설치
# cd /usr/local
# chmod +x jdk-6u45-linux-i586.bin
# ./jdk-6u45-linux-i586.bin
# ln -s jdk1.6.0_45 jdk1.6
이렇게 하면 /usr/local/jdk1.6.0_45 에 설치가 되고, 심볼릭 링크 /usr/local/jdk1.6 도 만들어 준다.
2. 톰캣 설치
http://tomcat.apache.org/download-70.cgi
8.0 버전까지 나와 있으나, 7.0 버전을 설치한다.
Core 의 tar.gz 를 다운받는다.
역시 /usr/local 에 설치한다.
설치
# cd /usr/local
# tar zxvpf apache-tomcat-7.0.42.tar.gz
# ln -s apache-tomcat-7.0.42 tomcat7
이렇게 하면 /usr/local/apache-tomcat-7.0.42 에 설치가 되고, 심볼릭 링크 /usr/local/tomcat7 도 만들어 준다.
3. 환경 설정
위에서 심볼릭 링크를 만들지 않아도 되지만, 환경설정 경로를 간단하게 설정하기 위해서 해 주었다.
/etc/profile 파일에 다음 환경변수 설정을 추가한다.
# Tomcat
export JAVA_HOME=/usr/local/jdk1.6
export CATALINA_HOME=/usr/local/tomcat7
export PATH=$PATH:/usr/local/bin:$JAVA_HOME/bin:$CATALINA_HOME/bin
환경변수 다시 읽기. 수정된 profile 을 적용하기 위해서는 다시 읽어야 한다.
# source /etc/profile
환경변수를 확인해 본다.
echo $JAVA_HOME
echo $CATALINA_HOME
4. 동작 확인
톰캣을 실행시켜 봅시다.
# /usr/local/tomcat7/bin/catalina.sh start
프로세스 확인
# ps auxf
브라우저에서 확인.. 브라우저 주소창에
http://servername:8080
기본 아파치가 80 포트를 사용하고 있기 때문에, 8080 포트를 사용한다.
서버 방화벽에서 8080 포트를 열어 주어야 한다.
톰캣을 실행 중지
# /usr/local/tomcat7/bin/catalina.sh stop
4. Tomcat Connectors (mod_jk) 설치
http://tomcat.apache.org/download-connectors.cgi
# cd /usr/local/src
# tar zxvf tomcat-connectors-1.2.37-src.tar.gz
# cd tomcat-connectors-1.2.37-src/native/
# ./configure --with-apxs=/usr/sbin/apxs
# make
# make install
이렇게 하면, 아파치 모듈 폴더에 mod_jk.o 가 복사되어 들어 간다... 라고 되어 있는데, 모듈 폴더에 해당 파일이 없다. ㅡㅡ
어데로 갔나? 찾아 보자..
원래 안녕리눅스의 아파치 모듈 폴더는 /usr/lib/apache 인데,
mod_jk.o 를 찾아 보니, /usr/libexec 디렉토리 안에 들어가 있다. ㅠㅠ
그리고, 또 찾아 보니, 위에서 컴파일한 tomcat-connectors 소스 디렉토리 안의 native/apache-1.3 안에도 똑같은게 있다. ^^
그런데, 실제 파일 이름은 mod_jk.so.0.0.0 이고 mod_jk.so 가 심볼릭 링크 되어 있다. libexec 에서도 마찬가지다.
일단 모듈 파일은 찾은 것 같으니, mod_jk.so.0.0.0 을 /usr/lib/apache 에 mod_jk.so 로 이름바꾸어 넣자..
5. 아파치 기본 설정 추가 및 변경
먼저, workers.properties 파일이 필요한데, 이 파일은 httpd.conf 가 있는 폴더에 만들자. 다음은 그 내용
worker.list=ajp13
worker.ajp13.type=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
worker.ajp13.lbfactor=1
worker.ajp13.socket_keepalive=1
다음엔, httpd.conf 파일에 mod_jk.so 모듈 불러오는 부분을 추가해야 하는데,
httpd.conf 파일 안에 직접 추가할 수도 있고, rpm 모듈 불러오는 식으로 module.d 폴더에 추가할 수도 있다.
module.d 디렉토리에 tomcat.conf 파일을 만들어 아래 내용을 추가한다.
LoadModule jk_module modules/mod_jk.so
<ifModule jk_module>
JkWorkersFile workers.properties
JkShmFile logs/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</ifModule>
JkMount /*.jsp ajp13
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
위에서 JkMount 부터 Directory 설정까지는 apache virtual host 를 사용하지 않을 경우를 위한 세팅으로 보인다.
가상 vhost 를 사용한다면, 없어도 될 것 같다.
module.d 디렉토리의 *.conf 파일들은 메인 설정 파일인 httpd.conf 에서 불려지도록 되어 있다.
따라서, 이 경우엔 httpd.conf 파일을 별도로 수정하지 않아도 된다.
6. 아파치 가상 호스트 세팅
이제 아파치 가상호스트 설정에서 tomcat 을 사용할 수 있도록 구문을 추구한다.
<VirtualHost *>
~ 어쩌고 저쩌고 ~
Jkmount /*.jsp ajp13
</VirtualHost>
이렇게 한줄을 추가하면, 해당 virtual host 에서 tomcat 을 사용할 수 있게 된다.
가상 호스트 마다 추가해야 하고, 추가하지 않은 가상호스트는 jsp 를 사용하지 않는 걸로 된다.
여기까지 하고 아파치를 다시 시작 한다.
브라우저에서 http://servername/index.jsp 쳤을 때, Congraturation! 이라고 나오면 잘 설치된 것이다. ^^
7. tomcat 서버 설정
톰캣 서버 설정을 해 보자..
톰캣 서버 설정 파일은 $CATALINA_HOME/conf/server.xml 파일이다.
추가할 설정은 Host 설정인다. 아래와 같이 Host 를 추가한다.
<Host name="domain.com" appBase="/home/domain/public_html"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="" debug="1" />
<Alias>www.domain.com</Alias>
</Host>
이렇게 추가한다, 아파치의 가상호스트 설정과 비슷하며, 아파치 가상호스트 설정과 비교를 하자면,
name 은 가상호스트 ServerName 이고, appBase 는 아파치의 DocumentRoot 에 해당한다.
Alias 는 ServerAlias 에 해당하고 여러개를 추가할 수 있다.
이제, tomcat 을 재시작 해 보자.
# /usr/local/tomcat7/bin/catalina.sh stop
# /usr/local/tomcat7/bin/catalina.sh start
원하는 위치에 index.jsp 파일을 하나 만들고 브라우저에서 호출해 보자..
<%
String msg = "test";
%>
<%= msg %>
잘 나오면 Success.. ^^
톰캣에 기본적으로 한글 문제가 있는 듯 하다.
한글 문제는 기본적으로 이제는 utf-8 을 사용하도록 하자..
문서 포맷도 utf-8 로 가고, 문서 인코딩 지정도 utf-8 로 가자..
그래서 한글이 포함된 utf-8 포맷의 jsp 문서는 문서 상단에
<%@page pageEncoding="utf-8"%> 를 추가해 주면 한글이 잘 나온다.
<%@page pageEncoding="utf-8"%>
<%
String msg = "한글";
%>
<%= msg %>
euc-kr 을 써야 한다면,
문서 포맷을 ansi 로 하고 문서 상단에 <%@page pageEncoding="euc-kr"%> 이라고 정의해 주면,
한글이 나온다.
<%@page pageEncoding="euc-kr"%>
<%
String msg = "한글";
%>
<%= msg %>
8. init 스크립트 생성
init 스크립트 생성은 아래 참고 사이트를 참고하면 만들수 있다.
** 참고
http://blog.sixpoly.com/?p=292
http://nowonbun.tistory.com/138
http://wnstjqdl.tistory.com/12
http://blog.daum.net/haha25/5390356
http://okjsp.pe.kr/lecture/lec01/vhost02.html
http://knight76.tistory.com/entry/%ED%95%9C-%EC%84%9C%EB%B2%84%EC%97%90-%ED%86%B0%EC%BA%A3%EC%9D%B4-%EC%97%AC%EB%9F%AC%EA%B0%9C%EC%97%AC%EC%84%9C-%EC%A2%8B%EC%9D%80-%EC%A0%90