APACHE2.2.3 + TOMCAT 5.5 RPM설치후 연동

아파치와 톰켓은 rpm으로 설치할것이고 커넥터만 소스로 컴파일 할것입니다

OS Centos5.2로 작업 했습니다

 

펌방지가 걸려있어서 드로그&드롭이 않되어서 짜증낼분을 위해서
내용을 그대로 워드로 저장시켜놨습니다 드로그해서 copy&paste하실분은
문서 받아서 하세요 



세팅하면서 문제있는 세팅법들이 블로그나 웹사이트에 그대로

올라와 있고 그대로 했다가 하루동안 삽질이란 삽질은 다해본듯합니다

다른분들은 블로그로 세팅법올리실 때 해보시고 올리시길 바랍니다

 

연동시 사용되는 connector 에는 mod_jserv, JK, JK2, mod_webapp or mod_proxy


등이 있습니다.

 

자세한 내막은 알지는 못하지만 jserv mod_webapp


오래전부터 외면받아온 것 같고

 

JK2 는 개발자들의 흥미 부족을 이유로 개발이 중단되었습니다.

 

따라서 JK mod_proxy 가 남는 데 mod_jk.so(connector)


이용하여 설치를 하겠습니다

 


작업환경(2009년 6월 17)

OS

Centos 5.2

Apache2.2

httpd-2.2.3-22.el5.centos.1

Tomcat5.5

tomcat5-5.5.23-0jpp.7.el5_2.1

Java

jdk 1.6.0-b09

Connector

1.2.28

 


 

1.Apache 설치

Yum를 이용해서 설치합니다

Root로 작업합니다

#yum list | grep httpd

[root@ip149080 ~]#yum list | grep httpd

httpd.i386                                 2.2.3-22.el5.centos.1       installed

httpd-devel.i386                           2.2.3-22.el5.centos.1       installed

httpd-manual.i386                          2.2.3-22.el5.centos.1       updates 

lighttpd.i386                              1.4.22-2.el5.rf             rpmforge

lighttpd-fastcgi.i386                      1.4.22-2.el5.rf             rpmforge

lighttpd-mod_mysql_vhost.i386              1.4.22-2.el5.rf             rpmforge

system-config-httpd.noarch                 5:1.3.3.3-1.el5             base    

thttpd.i386                                2.25b-4.el5.rf              rpmforge

 

이렇게 나오는데 httpd.본인아키텍처로 설치하면됩니다

저는  32bit로 리눅스가 설치되엇기에

[root@ip149080 ~]#yum –y install httpd.i386

해서 설치 합니다

 

Httpd.conf는 따로 인터넷에서 최적화된 세팅법이나 본인에 맞게

맞추시고 본문건은 Apache + tomcat연동에 필요한 사항만 기술 합니다

 

 

[root@ip149080 ~]# vi /etc/httpd/conf/httpd.conf

를 한내용중

 

언어별 우선 순위라고 합니다. ko 를 맨 앞으로 옮겨줍니다.

LanguagePriority ko en ca cs da de el eo es et fr he hr it ja ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

[위에처럼 ko를 처음으로 이동시켜줍니다]

 

 

UTF-8 을 사용하기엔 아직 환경이 충분히 조성되지 않은 것 같습니다. 인코딩 방식을 EUC-KR로 변경해줍니다.

AddDefaultCharset EUC-KR

[EUC-KR로 변경]

 

 

저장한후 방화벽에서 80번 포트 열어줍니다

 

아파치 데몬을 올립니다

[root@ip149080 ~]#service httpd start

않되시면

[root@ip149080 ~]#/sbin/service httpd start

하시기 바랍니다

 

2번째로 되시는분은 일반계정사용중에 su로 루트로 로그인후에 작업하신분들이며

그일반계정에 /sbin 이 패스로 설정않되어있어서 첫번째처럼 했을 때 에러가 뜨는것입니다

그런분들은 계정 디렉토리에서 .bash_profile(bash일경우입니다)를 열어서

PATH=/usr/sbin:$PATH; export PATH

추가해서 패스를 추가해주시기 바랍니다

 

브라우저에서 http://127.0.0.1/ 로 접속해봅니다 혹은 http://아이피주소

로 접속해서 화면이 뜨면 된겁니다

[root@ip149080 ~]#service httpd stop 으로 데몬 내려주시구요

 

 

 

2.JDK 설치

 

대부분 문서는 sun 사이트에서 bin파일 설치하고 패스 잡아주고 하는데

그런자체가 잇는자료다 퍼다가 쓴 흔적이죠 구지 그럴필요 없습니다

 

[root@ip149080 ~]#/yum list | grep java

jakarta-commons-pool-javadoc.i386          1.3-5jpp.1                  installed

jakarta-commons-validator-javadoc.i386     1.1.4-5jpp.1                installed

jakarta-oro-javadoc.i386                   2.0.8-3jpp.1                installed

jakarta-taglibs-standard-javadoc.i386      1.1.1-7jpp.1                installed

java-1.4.2-gcj-compat.i386                 1.4.2.0-40jpp.115           installed

java-1.6.0-openjdk.i386                    1:1.6.0.0-0.30.b09.el5      installed

 

중략….많이 나옵니다 그중보면 깔끕스럽게

java-1.6.0-openjdk.i386 있네요

 

[root@ip149080 ~]#/yum –y install java-1.6.0-openjdk.i386

의존성에 의해 필요한 몇 개의 패키지를 다설치 합니다

*붙여서 java에 해당하는거 다설치하실필요없습니다

 

설치다되시면

[root@ip149080 ~]# java -version

java version "1.6.0"

OpenJDK  Runtime Environment (build 1.6.0-b09)

OpenJDK Client VM (build 1.6.0-b09, mixed mode)

 

뜨는걸 보실수있습니다 구지 패스 그런거 없어도 됩니다

 

   

3.TOMCAT 설치

 

[root@ip149080 ~]#yum list | grep tomcat

해보시면

tomcat5.i386                               5.5.23-0jpp.7.el5_2.1       installed

tomcat5-common-lib.i386                    5.5.23-0jpp.7.el5_2.1       installed

tomcat5-jasper.i386                        5.5.23-0jpp.7.el5_2.1       installed

tomcat5-jsp-2.0-api.i386                   5.5.23-0jpp.7.el5_2.1       installed

tomcat5-server-lib.i386                    5.5.23-0jpp.7.el5_2.1       installed

tomcat5-servlet-2.4-api.i386               5.5.23-0jpp.7.el5_2.1       installed


여러 개나 나옵니다 역시

[root@ip149080 ~]#yum –y install tomcat5.i386

를 설치해주시면 필요한 몇 개더 패키지 설치 합니다

 

8080포트 방화벽에서 열어주시구요

 

[root@ip149080 ~]#vi /usr/share/tomcat5/bin/relink

로 열어서 문서중간에 파란색으로 되어있는것처럼

않되어있으면 밑에 처럼 해주세요

 

for webapp in $(find $CATALINA_HOME/webapps -mindepth 1 -maxdepth 2 -type d) ; do

    [ -d "$webapp/WEB-INF/lib" ] && rebuild-jar-repository $webapp/WEB-INF/lib

Done

 

다음파일을 열어서 밑에와 같이 수정해주세요

#vi /usr/share/tomcat5/conf/workers.properties

#workers.tomcat_home=/var/tomcat

workers.tomcat_home=/usr/share/tomcat5

 

#workers.java_home=/opt/IBMJava2-13

workers.java_home=/usr/lib/jvm/java

 

저장하고 다음에 web.xml를 수정해줍니다

 

 

 

# vi /usr/local/tomcat/conf/web.xml
밑에 기술된부분이 주석처리 되어있는데 풀어주셔야합니다


<servlet>
    <servlet-name>invoker</servlet-name>
    <servlet-class>
    org.apache.catalina.servlets.InvokerServlet
    </servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>

 

이부분도

<servlet-mapping>
    <servlet-name>invoker</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

 

 

 

이번에는 server.xml 를열어 수정해줍니다

<!-- Define an AJP 1.3 Connector on port 8009 -->

<!--<Connector port="8009" 

enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />--> <<= 주석처리후

 


<Connector port="8009" maxHttpHeaderSize="8192" tomcatAuthentication="false"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" redirectPort="8443" acceptCount="100"

               connectionTimeout="20000" disableUploadTimeout="true" protocol="AJP/1.3" />

[위내용 새로써줍니다]

 기존 AJP 프로토콜을 정의한 부분을 주석을 달고 몇몇 Attribute를 추가한내용입니다

 

 

[root@ip149080 ~]#service tomcat5 start 로 올려주시구요

http://localhost:8080  이나 http://아이피주소:8080

를 쳐서 고양이가 나오는지 확인해 줍니다 않나오면 먼가 문제가있는것입니다

 

 

 

4.Connector설치

일단 소스를 받습니다 http://tomcat.apache.org/connectors-doc/

# tar zxvf tomcat-connectors-current-src.tar.gz

# cd tomcat-connectors-1.2.26-src/native

 

[중요]

configure하기전에 해야 할게 있습니다 rpm으로 설치하게되면 apxs가 설치가

되어잇지않기 때문에httpd-devel를 설치를 해야합니다

이부분에 대해서 기술이 되어있지않고 밑에처럼 하라고만 하니
에러가 날수 밖에 없죠 
이것 때문에 고생많이했죠


#yum –y install httpd-devel.i386

정확한 패키지명은 항상 yum list | grep  으로 검색하고 yum설치 하세요

 

# ./configure --with-apxs2=/usr/local/apache/bin/apxs

# make

configure할 때 에러가 난다면 apxs2 apxs 로 해보시기 바랍니다


이렇게 하면 tomcat-connectors-1.2.26-src/native/apache-2.0

mod_jk.so 가 생성되었음을 확인 할 수 있습니다 아팟치 모듈폴더에 카피합니다

# cp /usr/local/src/tomcat-connectors-1.2.26-src/native/apache-2.0/mod_jk.so 

/etc/httpd/modules/mod_jk.so 


그리고 Apache Tomcat을 연동할 파일 workers.properties도 카피하자.
# cp /usr/local/src/tomcat-connectors-1.2.26-src/conf/workers.properties 

/etc/httpd/conf/workers.properties 

이제 셋팅을 해 준다
.


# vi /usr/local/apache/conf/workers.properties

 

#

workers.tomcat_home=/usr/share/tomcat5

workers.java_home=/usr/lib/jvm/java

ps=/

worker.list=ajp12, ajp13

# Definition for Ajp13 worker

#

worker.ajp13.port=8009

worker.ajp13.host=localhost

worker.ajp13.type=ajp13

 

# Definition for Ajp12 worker

#

worker.ajp12.port=8007

worker.ajp12.host=localhost

worker.ajp12.type=ajp13

 

 

위에서 ajp12, ajp13 은 식별자이다. 다른 식별자(가령 my1, my2 등등)를 사용해서

몇개 더 추가시켜도 된다.  가상호스트에 대한 셋팅을 다르게 가져갈 때 편하게 사용될 것 같다.

대신에 포트는 모두 다르게 가져가야 한다. 다른 셋팅도 있는데 일단 두자.

  

다음은 Apatche 설정파일 셋팅

# vi /usr/local/apache/conf/httpd.conf

파일을 열어서 밑에 내용을 기술해주자

LoadModule jk_module module/mod_jk.so

 

 

JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile     /etc/httpd/logs/mod_jk.log

JkMount /*.jsp ajp13
JkMount /*.do ajp13
JkMount /article/* ajp13
JkMount /uploadManager ajp13
JkMount /downManager ajp13

JkMount /alice-upload ajp13

JkMount /servlet/* ajp13

 

 

httpd.conf 다른쪽을보면 밑에와 같은 구문을 볼수있다

DirectoryIndex index.html index.html.var

 

이부분을 밑에처럼 index.jsp 를 추가하자

 

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

 

 

설정이 끝났고 톰겟올려주시고 아파치 올려주시고 테스트 해보시기 바랍니다

 

[추가]로 이유는 모르겠으나 tomcat  startup를 해도 않될때에는

vi /usr/share/tomcat5/log/catalina.out

로 열어서

 

Caused by: java.lang.RuntimeException:

Unable to create path to config file :/usr/local/apache/modules/mod_jk.so

 

이런에러나

Caused by: java.lang.RuntimeException:

Unable to create path to config file :/usr/local/apache/conf/workers.properties

이런 에러가 발생시에는

이유는 모르겠지만 저 에러메세지에서 표시하는

디렉토리 경로대로 디렉토리 생성해주면 문제가 해결됩니다

Keep on following dream!