apache2.x + Tomcat5.x연동

2006년 6월 기준 최신 버전으로 설치하였습니다.(단, OS제외)

OS : RedHat Linux9 or Enterpiz Linux
J2SE : jdk-1_5_0_07-linux-i586-rpm.bin
Apache : httpd-2.2.2.tar.gz
tomcat : apache-tomcat-5.5.17.tar.gz
Tomcat Connectors (mod_jk, etc.) : jakarta-tomcat-connectors-1.2.15-src.tar.gz

1. Apache 설치

- 아파치 사용자 권한으로 접속

- 다운로드 : httpd-2.2.2.tar.gz

- 원하는 디렉토리에 저장. (예. /www/src 디렉토리 생성 후 저장)

- 압축 해제 : tar xvfz httpd-2.2.2.tar.gz

- cd httpd-2.2.2

- vi setup.txt

./configure
--prefix=/www/server/apache
--enable-so
--enable-modules=so
--enable-mods-shared=most

- sh setup.txt

- make

- make install

- 라이브러리와 모듈의 위치를 등록 (권한이 없을 경우 root로 접속하여 실행)

echo "/www/server/apache/lib" >> /etc/ld.so.conf
echo "/www/server/apache/modules" >> /etc/ld.so.conf

ldconfig

cp /www/server/apache/bin/apachectl /etc/init.d/httpd

ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc0.d/K90httpd
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S89httpd
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S89httpd

- 마지막으로 vi /www/server/apache/conf/httpd.conf 파일의 설정을 변경합니다.

   ServerAdmin admin@example.com -> 원하는 메일 계정으로 수정

   #Servername www.example.com:80

   #을 제거하고 www.example.com을 웹서버의 domain name으로 수정해 주거나 localhost로 적어줍니다.

2. J2SE 설치

- root 권한 접속

- /usr/local/src 에 jdk-1_5_0_07-linux-i586-rpm.bin 다운로드

- chmod 755 jdk-1_5_0_07-linux-i586-rpm.bin

- ./jdk-1_5_0_07-linux-i586-rpm.bin

rpm 파일이 생성되었다.

rpm -ivh jdk-1_5_0_07-linux-i586-rpm

정상적으로 설치되었으면 /usr/java/jdk-1_5_0_07 에 설치되었다.

- 환경 설정

vi /etc/profile 또는 vi .bash_profile for USER's

JAVA_HOME=/usr/java/jdk1.5.0_07
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME

- 시스템 적용

source /etc/profile

3. Tomcat 설치

- Tomcat 사용자 권한으로 접속

- 다운로드 : apache-tomcat-5.5.17.tar.gz

- 원하는 디렉토리에 저장. (예. /www/src 디렉토리 생성 후 저장)

-  tar xvfz apache-tomcat-5.5.17.tar.gz /www/server

- cd /www/server/apache-tomcat-5.5.17

- 환경 설정

vi /etc/profile 또는 vi .bash_profile for USER's

 

JAVA_HOME=/usr/java/jdk1.5.0_07
CATALINA_HOME=/www/server/apache-tomcat-5.5.17

PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

export JAVA_HOME CATALINA_HOME

- 시스템 적용

source /etc/profile

- vi web.xml

<init-param>
   <param-name>xpoweredBy</param-name>
   <param-value>false</param-value>
</init-param>

이 부분을 찾아 바로 밑에

<init-param>
   <param-name>javaEncoding</param-name>
   <param-value>euc-kr</param-value>
</init-param>

를 추가해 준다.(JSP 컴파일시 한글 인코딩 설정)

- vi server.xml

   <Connector port="8080"
       maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
       enableLookups="false" redirectPort="8443" acceptCount="100"
       debug="0" connectionTimeout="20000"
       disableUploadTimeout="true" />

useBodyEncodingForURI="true" 추가해 준다. (get방식 한글 파라메타 인식)

<Connector port="8080"
       maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
       enableLookups="false" redirectPort="8443" acceptCount="100"
       debug="0" connectionTimeout="20000"
       disableUploadTimeout="true" useBodyEncodingForURI="true" />

   이 부분을 찾아  URIEncoding="euc-kr" 을 추가해 준다.
본 설정은 Apache2 + Tomcat 5.x + mod_url.so 를 통한 한글 파일과 이미지 주소 사용에 인식을 하기 위함이다.

   <Connector port="8009"
          enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

   <Connector port="8009"
          enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="euc-kr"/>
      
      
Context path 등록

<Context path="/pims" reloadable="true" docBase="/www/pims" workDir="/www/pims/work" >

- 224 라인을 다음과 같이 변경한다.

vi catalina.sh

   "$_RUNJAVA" $JAVA_OPTS -verbose:gc -Xms512m -Xmx512m -XX:NewSize=128m -X:MaxNewSize=128m -XX:PermSi


4. mod_jk install

- Tomcat 사용자 권한으로 접속

- 다운로드 : jakarta-tomcat-connectors-1.2.15-src.tar.gz

- 원하는 디렉토리에 저장. (예. /www/src 디렉토리 생성 후 저장)

-  tar xvfz jakarta-tomcat-connectors-jk2-src-current.tar.gz

- cd /www/src/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2

- ./buildconf.sh

- ./configure --with-apxs2=/www/server/apache/bin/apxs

- make

- cd ../build/jk2/apache2

   mod_jk2.so 파일이 만들어졌다. 이 파일을 아파치 모듈이 있는 디렉토리로 복사

-
cp mod_jk2.so /www/server/apache/modules


workers2.properties 파일은
  Apache 웹서버에서 JK2 모듈을 사용할 때 필요한 여러가지 설정을 저장한 파일이다. workers2.properties 파일이 Apache 쪽에서 JK2 모듈의 설정을 담당.

jk2.properties 파일이 중요한데, Tomcat 쪽에서 JK2 모듈을 통한 웹서버와의 연결 설정을 담당한다.
Tomcat 5.x 버전에서는 JK2 connector를 처리할 수 있는 coyote connector가 기본설치 되어 있기 때문에 jk2.properties 파일을 Tomcat의 conf 디렉토리로 복사할 필요는 없다.

- cd /www/src/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/conf

- cp workers2.properties /www/server/apache/conf


- vi /www/server/apache/conf/workers2.properties

# Shared memory handling. Needs to be set.

[shm]

file=/var/log/httpd/shm.file

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

 

# Announce a "status" worker

[status:status]

 

# Uri mapping

[uri:/jsp-examples/*]

worker=ajp13:localhost:8009

 

[uri:/servlets-examples/*]

worker=ajp13:localhost:8009

 

[uri:/tomcat-docs/*]

worker=ajp13:localhost:8009

 

[uri:/*]

worker=ajp13:localhost:8009

 

[uri:/status/*]

worker=status:status


위에서도 언급했듯이 jk2.properties 은 생략 가능하다. 참고로 기재한다.

- vi /www/server/apache-tomcat-5.5.17/conf/
jk2.properties

channelSocket.port=8009
shm.file=/www/serverl/apache/logs/jk2.shm
apr.jniModeSo=inprocess

- vi /www/server/apache/conf/httpd.conf

LoadModule 부분을 찾아서 다음을 추가합니다.

LoadModule jk2_module modules/mod_jk2.so


DirectoryIndex 부분을 찾아서 index.jsp를 추가합니다.

DirectoryIndex index.html index.html.var index.jsp

Posted by [czar]
,