2008/05/27 00:41

우분투 8.04에서 톰캣을 설치해 보아요.

자바부터 설치해야죠.

오픈 소스 기반인 OpenJDK를 한번 써보아요.
JDK 6.0 버전이기는 한데.. 나중에 잘 안 되면 sun 자바로 바꾸면 되죠. ^^

sudo apt-get install openjdk-6-jdk

오오.. 앤트(ant)까지 깔리는군요. +_+

톰캣 5.5를 설치해 보아요.

JAVA_HOME 환경변수가 필요하네요.

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/

다음 패키지들을 설치하면 돼요.

sudo apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps

만약 다음과 같은 메시지가 중간에 나오면서 에러가 나면..

* no JDK found - please set JAVA_HOME

이렇게 해야 해요.

sudo -E apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps

-E 옵션을 사용하면 현재 쉘의 환경변수를 넘겨주네요.

톰캣이 시작될 때에도 JAVA_HOME 환경변수가 필요하므로, 실행스크립트를 수정해야 해요.

vi /etc/init.d/tomcat5.5

앞부분에 다음 라인을 추가하면 돼요.

JAVA_HOME=/usr/lib/jvm/java-6-openjdk/

아파치 2.2와 톰캣을 연동해 보자.

우선 아파치 2.2의 mod_jk 모듈부터 설치해야 해요.

sudo apt-get install libapache2-mod-jk

mod_jk의 설정 파일을 만들어 주어야 해요.

sudo vi /etc/apache2/mods-available/jk.conf

<ifmodule jk_module>
	JkWorkersFile /etc/apache2/jk/workers.properties
	JkShmFile /var/log/apache2/jk.shm
	JkLogFile /var/log/apache2/jk.log
	JkLogLevel info
	JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
	JkRequestLogFormat "%w %V %T"
</ifmodule>


mod_jk의 worker 설정 파일도 만들어 주어요.

sudo mkdir /etc/apache2/jk
sudo vi /etc/apache2/jk/workers.properties

다음 내용을 넣어 주어요.

worker.list=worker1

worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

mod_jk 설정 파일과 worker의 이름이 같아야 해요.

mod_jk 모듈을 사용 가능하게 해 주어야 해요.

sudo a2enmod jk

혹시 이미 mod_jk 모듈이 사용 가능한 상태라면 다음과 같이 해줘야 해요.

sudo a2dismod jk
sudo a2enmod jk

아파치 설정도 수정해야겠죠.

sudo vi /etc/apache2/sites-available/ssl

/etc/apache2/sites-available/ssl은 기존에 존재하지 않는 파일이에요.
저는 모든 접속을 https://로 접근하게 하려고 ssl 사이트를 따로 만들어 주었어요.
아파치 설정에 의문점이 있다면 "우분투 8.04에서 아파치 2.2를 설치해 보아요."를 참고하세요.

다음 내용을 적당한 곳에 추가해 주어요.

<ifmodule jk_module>
	DocumentRoot /usr/share/tomcat5.5-webapps/ROOT/
	
	<directory /usr/share/tomcat5.5-webapps/root>
		AllowOverride None
		Order allow,deny
		allow from all
	</directory>
	
	JkMount / worker1
	JkMount /index.jsp worker1
	JkMount /manager/* worker1
	JkUnMount /*.gif worker1
	JkUnMount /*.jpg worker1
	JkUnMount /*.png worker1
	JkUnMount /*.xml worker1
	JkUnMount /*.xsd worker1
	JkUnMount /*.xsl worker1
	
	Alias /manager "/usr/share/tomcat5.5/server/webapps/manager"
	Alias /tomcat-docs "/usr/share/tomcat5.5-webapps/tomcat-docs"
	
	<directory /usr/share/tomcat5.5/server/webapps/manager>
		AllowOverride None
		Order allow,deny
		Allow from all
	</directory>
	
	<directory /usr/share/tomcat5.5-webapps/tomcat-docs>
		AllowOverride None
		Order allow,deny
		Allow from all
	</directory>
</ifmodule>


DocumentRoot가 이미 선언되어 있으면 그 뒤에 붙여넣어야 제대로 동작하겠죠?

그리고 ROOT 웹 어플리케이션을 연결해 주기위해 "/""/index.jsp" 에 대해서도 설정해 주었는데요.. ROOT 웹 어플리케이션의 내용이 바뀌게 되면 바꿔주어야 할 것 같아요. 임시방편일 뿐이죠.

결국 왠만하면 / 디렉토리는 톰캣으로 넘기지 않는 것이 상책인 것 같아요.

톰캣과 아파치를 재시작해 주면 끝이에요. ^^

sudo /etc/init.d/tomcat5.5 restart
sudo apache2ctl restart

아직 아파치와 mod_jk에 대하여 자세하게 알지 못해서 미흡하네요.
앞으로 천천히 내용을 보강해 나가야 겠어요.

환경:
    Ubuntu 8.04 Hardy Heron Server Edition - x86


Trackback 0 Comment 0