APM, Tomcat, JSP 설치 및 연동
저작권:이 문서는 자유롭게 수정 및 배포가 가능합니다. 단 상업적 용도로 사용할 수 없습니다.
수정 및 배포 시 작성자의 이름 및 출처를 꼭 명시하기 바랍니다.
작성자 : f405(ccotti22)
작성일 : 2005년 4월 6일 수요일
이메일 : f405@naver.com
이 문서는 공부하는 입장에서 작성되었으므로 틀린 부분을 다소 포함할 수 있으며, 저는 그에 대한 책임을 지지 않겠습니다. 부족하지만 다른 분들도 공부하는데 도움이 되길 바랍니다. 그리고 이 문서를 작성하기 전 참고한 리눅스 문서들을 작성하신 많은 선배님들에게 감사의 말씀을 드립니다.
그리고 이 후부터는 경어는 생략하였습니다. 양해의 말씀을...
설치환경
Red Hat Linux (Kernel 2.6.9-5.EL)
설치 패키지 구성(필요한 파일) //다음 파일들을 다운 받고 설치 시작
httpd-2.0.53 (httpd-2.0.53.tar.gz)
php-5.0.3 (php-5.0.3.tar.tar)
mysql-standard-4.1.10a-pc-linux-gnu-i686 (mysql-standard-4.1.10a-pc-linux-gnu-i686.tar.gz)
j2sdk1.4.2_08 (j2sdk-1_4_2_08-linux-i586.bin)
jakarta-tomcat-5.0.28 (jakarta-tomcat-5.0.28.tar.gz)
jakarta-tomcat-connectors-jk2-2.0.4-src (jakarta-tomcat-connectors-jk2-src-current.tar.gz)
다음 사이트에서 필요한 파일들을 다운받을 수 있다.
[Apache] http://httpd.apache.org/download.cgi
[MySQL] http://dev.mysql.com/downloads
[PHP] http://www.php.net/downloads.php
[J2SE ] http://java.sun.com/j2se/1.4.2/download.html
[Tomcat] http://jakarta.apache.org/site/binindex.cgi
[Tomcat-connector] http://jakarta.apache.org/site/downloads/downloads_tomcat.html
설치는 MySQL, J2SE, Apache2, PHP, Tomcat, Tomcat-connector의 순서대로 진행한다.
모든 설치는 root권한으로 진행하며 작업에 필요한 다운로드 파일들은 모두 /usr/local/ 에 저장한다.
// 기존의 rpm을 검색하여 삭제한 후 설치를 시작하도록 한다.
rpm -e --nodeps `rpm -qa | grep -i mysql`
rpm -e --nodeps `rpm -qa | grep -i php`
rpm -e --nodeps `rpm -qa | grep -i apache`
rpm -e --nodeps `rpm -qa | grep -i httpd`
프로세스를 확인하여 현재 Apache 웹데몬이 실행되고 있는지 확인한다.
#> ps –ef |grep httpd
작동중인 Httpd 데몬이 목록에 나타나면 종료 시킵니다.
#> /etc/init.d/httpd stop
- MySQL 설치
# groupadd mysql
# useradd -g mysql -s /bin/false mysql
# tar -xvzf mysql-standard-4.1.10a-pc-linux-gnu-i686.tar.gz
# ln -s /usr/local/mysql-standard-4.1.10a-pc-linux-gnu-i686 /usr/local/mysql
# cd /usr/local/mysql
# ./scripts/mysql_install_db
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
# cp ./support-files/my-medium.cnf /etc/my.cnf
# cp ./support-files/mysql.server /etc/init.d/mysqld
# vi /etc/init.d/mysqld
// 154 줄을 다음과 같이 수정한다. // 버전에 따라 다름.. 다음 부분을 잘 찾아서 고칠 것
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file --user=mysql >/dev/null 2>&1 &
# chmod 700 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on
# /etc/init.d/mysqld start
- J2SE 설치
배포본 형태는 2가지이다.
RPM 파일을 만들어주는 binary 파일과 배포파일이 있는 위치에서 압축을 풀어서 설치하는 바이너리 파일이다. 여기서는 바이너리 파일 배포본을 다운로드 받아서 설치한다.
- binary 배포본 설치
배포파일 j2sdk-1_4_2_08-linux-i586.bin
설치할 위치는 사용자가 임의로 정할 수 있으며, 여기서는 /usr/local/ 에 설치한다.
처음에 다운받았을 때에는 실행권한이 없으므로 실행이 가능하도록 권한을 설정한다.
# chmod 755 j2sdk-1_4_2_08-linux-i586.bin
파일을 실행시켜서 J2SE를 설치한다.
# ./ j2sdk-1_4_2_08-linux-i586.bin
화면에 출력되는 사용권 계약에 동의하면 압축이 풀리면서 SDK가 설치된다.
설치 경로는 /usr/local/j2sdk1.4.2_08 이다. 설치된 폴더에 심볼릭 링크를 걸어준다.
# ln –s /usr/local/j2sdk1.4.2_08 /usr/local/j2sdk
PATH를 설정한다. PATH 설정을 위해 /etc/profile을 열어서 파일 첫 부분에 다음을 추가한다.
# vi /etc/profile
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME=/usr/local/j2sdk
export PATH=$PATH:$JAVA_HOME/bin:
변경된 설정을 시스템에 적용시킵니다.
# source /etc/profile
임의의 위치에서 java를 실행시킵니다.
# java
JAVA option들이 화면에 출력되면 성공적으로 설치가 이루어진 것이다.
버전을 확인하면 설치한 버전이 맞게 출력된다. 다른 버전이 출력되면 설치가 실패한 것이거나 PATH설정부분에 문제가 있는 것이니 확인해 보길 권한다.
# 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)
- apache2 설치
# tar -xvzf httpd-2.0.53.tar.gz
# cd httpd-2.0.53
# ./configure --prefix=/usr/local/apache2 \
--enable-rule=SHARED_CORE \
--enable-modules=so \
--enable-so
# make
# make install
# vi /usr/local/apache2/conf/httpd.conf 수정한다. AddType 부분에 아래 두 줄 추가...
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
chkconfig 명령을 이용하여 각 실행레벨에서 httpd데몬이 자동 실행되도록 설정할 수 있다.
# chkconfig --level 35 httpd on
마지막으로 /usr/local/apache2/conf/httpd.conf 파일의 설정을 변경한다.
#ServerName www.example.com:80 부분 아래에
ServerName localhost:80 혹은
ServerName 127.0.0.1:80 을 추가한다. 자기의 도메인 네임을 적어주어도 좋다..
설치 확인
# /usr/local/apache2/bin/httpd -t
Syntax OK …라고 출력된 후 프롬프트가 떨어지면 OK!!
- php 설치
# vi /etc/ld.so.conf
다음 라인 추가
/lib
/usr/lib
/usr/local/lib
/usr/local/mysql/lib
# ldconfig
# tar -xvzf php-5.0.3.tar.tar
# cd php-5.0.3
LIBS="-L/usr/local/mysql/lib -lmysqlclient" ./configure \
--prefix=/usr/local/php5 \
--with-config-file-path=/usr/local/php5/lib \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-dom=/usr \
--with-zlib-dir=/usr \
--enable-dio \
--enable-mbstring=all \
--enable-mbstr-enc-trans \
--enable-mbregex
# make
# make install
# cp ./php.ini-dist /usr/local/php5/lib/php.ini
- Tomcat 설치
5.5.0 은 j2se5.0 을 필요로 하므로 낮은 버전을 받아야 한다.
- 바이너리 설치
다운파일의 저장위치인 /usr/local/ 에서 압축을 풀어준다.
# tar -zxvf jakarta-tomcat-5.0.28.tar.gz
Jakarta-tomcat-5.0.28 디렉토리가 생성되면 Link를 이용하여 tomcat 의 경로를 지정.
# ln –s /usr/local/Jakarta-tomcat-5.0.28 /usr/local/tomcat
실행파일이 들어있는 디렉토리로 이동하여 Tomcat실행.
/usr/local/bin/의 catalina.sh 또는 startup.sh 파일을 실행시킨다.
# cd /usr/local/tomcat/bin
# ./catalina.sh start 또는 # ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME: /usr/local/j2dk
위의 메시지가 나오면 Tomcat이 정상적으로 작동하는 것이다. 웹브라우저를 통해 다음의 주소로 접속한다.
http://localhost:8080 또는 http://설치한서버의주소:8080
정상적으로 Tomcat이 작동하고 있다면 Tomcat 관련 문서가 나타난다. 말로만 듣던 못생긴 고양이가...정말 못생겼다..
만일, 정상적으로 작동하지 않는다면 J2SE가 제대로 설치되지 않았거나 PATH 설정이 올바르지 않았기 때문이므로 /etc/profile을 열어 PATH 설정 부분을 확인한다.
Tomcat의 Shut down은 catalina.sh 또는 shutdown.sh 파일을 이용한다.
# ./catalina.sh stop 또는 # ./shutdown.sh
/etc/profile에서 J2SE 설치 시 PATH 설정한 부분에 다음을 추가한다.
# vi /etc/profile
export JAVA_HOME=/usr/local/j2sdk
export APACHE2_HOME=/usr/local/apache2
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/activation.jar:
$JAVA_HOME/lib/mail.jar:$CATALINA_HOME/common/lib/servlet.jar
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$APACHE2_HOME/bin:.
변경된 설정을 시스템에 적용시킨다.
# source /etc/profile
PATH를 설정해주었으므로 임의의 위치에서 Tomcat을 실행시킬 수 있다.
설치 완료!!
- Tomcat Web Server Connector, JK2를 이용한 Apache2와 Tomcat5의 연동
Apache와 Tomcat연동
배포파일 jakarta-tomcat-connectors-jk2-src-current.tar.gz
JK2 connector 소스를 컴파일 하면 mod_jk2.so 모듈을 얻는다.
Apache 웹서버와 Tomcat을 연동할 mod_jk2.so 모듈을 얻는 것이 컴파일의 목적이라 활 수 있겠다.
# cd /usr/local/
# tar -zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz
# cd /usr/local/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs
# make
# cd ../build/jk2/apache2
# pwd
/usr/local/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2
# ls (mod_jk2.so 파일 확인)
# cp mod_jk2.so /usr/local/apache2/lib
# cd /usr/local/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/conf
# cp workers2.properties /usr/local/apache2/conf/
/usr/local/apache2/conf/httpd.conf 파일의 LoadModule 부분을 찾아서 아래와 같이 추가하고, DirectoryIndex 부분을 찾아서 index.jsp를 추가한다.
LoadModule jk2_module /usr/local/apache2/lib/mod_jk2.so
…
DirectoryIndex index.html index.html.var index.php index.phtml index.jsp
#> vi /usr/local/apache2/conf/worker2.properties 에서 다음 부분을 맨 아래에 추가
# Shared memory handling. Needs to be set.
[shm]
file=/usr/local/apache2/logs/jk2.shm
size=1048576
# Example socket channel, explicitly set port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
# Define The Worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
# Anounce Status Worker
# [status:status]
# Announce Uri mapping
[uri:/examples/*]
worker=ajp13:localhost:8009
# Uri mapping
[uri:/*]
worker=ajp13:localhost:8009
# Uri status
[uri:/status/*]
worker=status:status
jk2.properties 에서 다음을 추가
# vi /usr/local/apache2/conf/jk2.properties
channelSocket.port=8009
shm.file=/usr/local/apache2/logs/jk2.shm
apr.jniModeSo=inprocess
끝.
연동이 됐는지 확인을 하려면 톰캣을 먼저 띄우고 아파치를 띄운다.
추가적으로 관리자 모드를 접속하기 위해서는 /톰캣경로/conf/tomcat-users.xml 파일에 유저를 추가한다. 버전마다 약간씩 틀릴 수도 있겠지만 방식은 거의 대동소이하다. 아래 설정파일을 참고해서 관리자 id와 패스워드를 추가하자.
# /usr/local/tomcat/conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="admin"/>
<role rolename="manager"/>
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="admin" password="********" roles="admin,manager"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>
이제 톰캣을 시동해 본다.
# ./startup.sh (시동)
# ./shutdown.sh ( 셧다운)
시동 후 브라우저로 http://ip or domain/ 했을때 고양이 그림이 나타나면 성공이다.