How to install Application Server (Tomcat 4, Apache 2, JK2 1.2) on Redhat linux 9

[준비]
1. Apache
file(source) : httpd-2.0.50.tar.tar
url : http://archive.apache.org/dist/httpd/httpd-2.0.50.tar.gz
다른 버전은 http://archive.apache.org/dist/httpd/ 에서 찾을 수 있다.
2. J2SDK
file(binary) : j2sdk-1_4_2_14-linux-i586.bin
url : http://java.sun.com/j2se/1.4.2/download.html
3. Tomcat connecter (mod_jk)
file(source) : tomcat-connectors-1.2.22-src.tar.gz
url : http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.22/tomcat-connectors-1.2.22-src.tar.gz
다른 버전은 http://archive.apache.org/dist/tomcat/tomcat-connectors/ 에서 찾을 수 있다.
4. Tomcat
file(binary) : jakarta-tomcat-4.1.31.tar.tar
url : http://archive.apache.org/dist/jakarta/tomcat-4/v4.1.31/bin/jakarta-tomcat-4.1.31.tar.gz
다른 버전은 http://archive.apache.org/dist/jakarta/ 에서 찾을 수 있다.
5. 준비된 파일을 /work에 복사한다.
6. root로 로그인한다.

[installation]
1. Apache
[prompt]# cd /work
[prompt]# tar xvf httpd-2.0.50.tar.tar
[prompt]# cd httpd-2.0.50
[prompt]# ./configure --enable-rule=SHARED_CORE --enable-modules=so --enable-module=rewrite --prefix=/usr/local/apache-2.0.50
[prompt]# make
[prompt]# make install
[prompt]# rm -rf /etc/apache
[prompt]# rm -rf /etc/httpd
[prompt]# ln -s /usr/local/apache-2.0.50/conf /etc/apache
[prompt]# ln -s /usr/local/apache-2.0.50 /usr/local/httpd
[prompt]# chmod -R 755 /usr/local/apache-2.0.50
[prompt]# chmod 755 /usr/local/httpd
[prompt]# export APACHE_HOME=/usr/local/apache-2.0.50

2. J2SDK
[prompt]# cd /work
[prompt]# ./j2sdk-1_4_2_14-linux-i586.bin
[prompt]# ln -s /usr/local/j2sdk1.4.2_14 /usr/local/java
[prompt]# export CLASSPATH=.:/usr/local/java/lib:usr/local/java/jre/lib:/oracle/product/9.2.0/jdbc/lib/classes12.jar:/oracle/product/9.2.0/jdbc/lib/
[prompt]# export JAVA_HOME=/usr/local/java
[prompt]# PATH=$PATH:$JAVA_HOME/bin
** PATH로 걸려있는 경로 중 java 의 다른 실행파일이 있다면 다른 이름으로 변경한다.
** CLASSPATH의 JDBC 경로 또한 맞는 위치로 바꾼다.

3. Tomcat
[prompt]# tar xvf jakarta-tomcat-4.1.31.tar.tar
[prompt]# mv jakarta-tomcat-4.1.31 /usr/local
[prompt]# ln -s /usr/local/jakarta-tomcat-4.1.31 /usr/local/tomcat4
[prompt]# export TOMCAT_HOME=/usr/local/tomcat4
[prompt]# export BASEDIR=/usr/local/tomcat4
[prompt]# export CATALINA_BASE=/usr/local/tomcat4/
[prompt]# export CATALINA_HOME=/usr/local/tomcat4/
[prompt]# export CATALINA_TMPDIR=/usr/local/tomcat4/temp
** export한 내용은 /etc/profile 에 추가한다
[prompt]# groupadd tomcat
[prompt]# useradd tomcat
[prompt]# passwd
[prompt]# chown -R tomcat:tomcat /usr/local/jakarta-tomcat-4.1.31
[prompt]# chmod -R 755 /usr/local/jakarta-tomcat-4.1.31

4. mod_jk
[prompt]# tar xvfz tomcat-connectors-1.2.22-src.tar.gz
[prompt]# cd tomcat-connectors-1.2.22-src
[prompt]# ./buildconf.sh
[prompt]# ./configure --with-apxs=/usr/local/apache-2.0.50/bin/apxs --with-tomcat4=/usr/local/tomcat4
[prompt]# cd apache-2.0
[prompt]# make -f Makefile.apxs
[prompt]# make install

[Configuration]
1.workers.properties
file : workers.properties
path : /usr/local/httpd/conf
context :
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
ps=/
worker.list=worker1
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

2. httpd.conf
file : httpd.conf
path : /usr/local/httpd/conf
context :
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /usr/local/httpd/conf/workers.properties
JkLogFile /usr/local/httpd/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /jsp-examples worker1
JkMount /jsp-examples/* worker1
JkMount /*.jsp worker1
JkMount /* worker1
JkMount /examples worker1
JkMount /examples/* worker1

DocumentRoot /usr/local/tomcat/webapps/ROOT

ServerName,

3. server.xml
file : server.xml
path : /usr/local/tomcat4/conf
context :


debug="0"/>
debug="0"/>





type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">



factory
org.apache.catalina.users.MemoryUserDatabaseFactory


pathname
conf/tomcat-users.xml





port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>


prefix="catalina_log." suffix=".txt"
timestamp="true"/>
debug="0" resourceName="UserDatabase"/>



reloadable="true" crossContext="true">
prefix="localhost_log." suffix=".txt"
timestamp="true"/>






4. Program copy
[prompt]# cp /work/ROOT /usr/local/tomcat4/webapps/ROOT

3. server.xml
file : web.xml
path : /work/ROOT /usr/local/tomcat4/webapps/ROOT/WEB-INF
context :

PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

Welcome to Tomcat

Welcome to Tomcat


invoker
/servlet/*


Oracle Datasource
jdbc/classDS
javax.sql.DataSource
Container




[Startup]
1. Apache
[prompt]# /usr/local/httpd/bin/apachectl start
2. Tomcat
[prompt]# su - tomcat
[prompt]# /usr/locat/tomcat4/bin/catalina.sh start


[FAQ]
1. 시작페이지를 요청하면 페이지를 찾을 수 없다.
- configuration 파일들을 확인한다.
httpd.conf 의 DocumentRoot, ServerRoot, ServerName 을 확인한다.
server.xml에서 의 appBase 는 $CATALINA_HOME을 루트로 한다.
의 child element인 에서 docBase는 의 appBase를 루트로 한다.
- httpd 설정파일이 /etc/apache 또는 /etc/httpd 에 따로 저장되었을 수도 있다.
해당 설정을 모두 지우고 설치한 apache의 conf 경로를 심볼릭링크로 지정해둔다.

2. .html은 잘 보이나, servlet을 요청하면 페이지를 찾을 수 없다.
- 환경변수가 올바르게 되어 있는지 확인한다. 특히 톰켓은 tomcat계정으로 실행하므로 tomcat 계정에서도 올바른 환경변수가 지정되어 있는지 확인한다.
[prompt]# echo $JAVA_HOME
[prompt]# echo $TOMCAT_HOME
[prompt]# echo $CATALINA_HOME
[prompt]# echo $CLASSPATH
- configuration 파일들을 확인한다.
server.xml에서 의 appBase 는 $CATALINA_HOME을 루트로 한다.
의 child element인 에서 docBase는 의 appBase를 루트로 한다.
WEB-INF 내의 web.xml 의 내용을 확인한다.
*tomcat5에서는 servlet mapping을 invoker와 같이 일괄지정할 수 없다.(보안위배된다하여 변경되었다.)
*http 요청 실패(error:401, error:404)는 apache 요청실패와 tomcat 요청실패가 다르다.
요청실패 메세지로 확인할 수 있다.

3. DB Connecter 관련 java exception이 발생한다.
- 만약 NoClass Exception이라면 JDBC를 로드할 수 없는 것이다.
JDBC의 classes12.jar이 CLASSPATH에 맞게 지정되어있는지 확인한다.
- DB 연결정보가 맞지 않을 수 있다. iecom_rdb.java의 소스를 확인하여 DB 연결정보(ip, SID, port 등)를 확인한다.

댓글 없음:

댓글 쓰기