작은 공간,하지만 꿈이있는...

'JSP'에 해당되는 글 1건

  1. 2009/06/18 apache tomcat jdk yum(rpm)으로 설치 및 연동
크리에이티브 커먼즈 라이선스
Creative Commons License

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

아파치와 톰켓은 rpm으로 설치할것이고 커넥터는 바이너리를
다운받아
사용할것 입니다 

OS Centos5.2로 작업 했습니다

09년 10월 1일 수정 : 내용변경 및 잘못된 내용수정, 오탈자 수정

 


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

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

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

 

연동시 사용되는 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


** 09년 10 월 1일 수정사항 :
전에는 이내용대로 사용하였으나
다중톰켓하면서 8080포트를
주석처리시 yum으로 설치한 톰켓이 올라오지 않아서
확인되지 않았지만 걍 찜찜해서 수정하면서 다시설치시 에는
기본값으로 해봤습니다
원하시는데로 골라서 설정하세요~
 




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

#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/share/tomcat5/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
추가한내용입니다

 

** 09년 10 월 1일 수정사항 :
전에는 이내용대로 사용하였으나
다중톰켓하면서 8080포트를
주석처리시 yum으로 설치한 톰켓이 올라오지 않아서
확인되지 않았지만 걍 찜찜해서 수정하면서 다시설치시 에는
기본값으로 해봤습니다
원하시는데로 골라서 설정하세요~



 

# service tomcat5 start 로 올려주시구요

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

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

  

 

4.Connector설치

http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
바이너리 형태로 배포 되는 mod_jk.so를 사용하도록 하겠습니다
os에 맞게 다운 받습니다 저는 32bit에 리눅스이니

http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.28/i586/
위치에 있는  mod_jk-1.2.28-httpd-2.2.X.so   
를 다운받아 사용하겠습니다


다운받은뒤 복사를 합니다

# cp mod_jk-1.2.28-httpd-2.2.X.so /etc/httpd/modules/mod_jk.so 

권한을 변경합니다
chmod 755 /etc/httpd/modules/mod_jk.so




혹시 톰켓 커넥터를 컴파일 하실분들은
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz
위 경로가 바로다운받을수 있는 링크이구요 1.2.28 버전 이네요

apache가 소스로 설치 되었다라면 톰켓-커넥터를 압축을 풀고
디렉토리안에 보면 native 디렉토리가 있는데 이동하셔서
./configure --with-apxs=/아파치/설치/경로/bin/apxs
를 지정하셔서 configure 하신후에
make && make install 하셔서 빌드 끝내시면 mod_jk.so
커넥터 파일이 아파치 설치 위치의 module 디렉토리 안에
들어와 있을거구요 만약 없다면 native 디렉토리내에
apache-2.0 디렉토리내에 mod_jk.so가 있을것입니다(기억이..)

yum이나 RPM을 다운받아 apache를 설치하신분은
apache-devel을 설치해야 apxs가 있으므로 설치후에 경로는
/usr/sbin/apxs 임으로
./configure --with-apxs=/usr/sbin/apxs
로 하시거나 저위치에 없다면 whereis apxs 로 찾아보시기 바랍니다
make && make install 까지 끝내 빌드가 다되었다면
톰켓커넥터압축푼 디렉토리/native/apache-2.0
안에 mod_jk.so가 있을것입니다 그것을 아파치 /module 디렉토리로
복사 하면 됩니다


아니면 걍 속편하게 바이너리 형태로 제공되는 mod_jk.so를 다운받으세요~




그리고
Apache Tomcat을 연동할 파일 workers.properties 을 복사합니다
# cp /usr/share/tomcat5/conf/workers.properties /etc/httpd/conf/ 

/etc/httpd/conf/workers.properties 

tomcat 설치후 workers.properties 파일에 연동은 가능할정도 세팅되어있기에

그대로 복사 해서 사용하면 되겠습니다 
 

workers.properties안의  ajp12, ajp13 은 식별자입니다 .
다른 식별자(가령 my1, my2, lb1,lb2 등등)를 사용해서

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

대신에 포트는 모두 다르게 가져가야 합니다
관련글 다중톰켓(유저별톰켓구성) 포스트


  

다음은 Apatche 설정파일 셋팅

# vi /etc/httpd/conf/httpd.conf

파일을 열어서 밑에 내용을 기술해줍니다



LoadModule jk_module modules/mod_jk.so

 

 밑의 내용을 따로 빼놓고 사용하여도 상관은 없습니다

전 httpd.conf  안에다가 설정하고 사용하겠습니다

JkWorkersFile /etc/httpd/conf/workers.properties

JkLogFile     /etc/httpd/logs/mod_jk.log

JkShmFile /usr/tomcat/logs/jk.shm
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

 

 


Tomcat5 의 홈디렉토리를 /var/www 로 변경해줍니다.

# cd /usr/share/tomcat5/webapps/

# mv ROOT ROOT.old

# ln -s /var/www/html /usr/share/tomcat5/webapps/ROOT

# cp -r /usr/share/tomcat5/webapps/ROOT.old/WEB-INF/ /usr/share/tomcat5/webapps/ROOT/WEB-INF

 

webapps 에 ROOT가 없다면 바로 심볼릭 링크 작업부터 해주면 됩니다

복사 작업은 넘어가시구요

 


만약 고양이 페이지가 없으신분들은 아에 아무것도 않나올것 입니다
jsp테스트 페이지로 테스트 해보시거나 고양이 페이지 다운받아서
/var/www/html/ 에 넣고 테스트 해보시기 바랍니다



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

 

[추가]로 이유는 모르겠으나 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

이런 에러가 발생시에는

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

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



포스팅 다운받기



 
페도라 한국 사용자 모임

페도라 한국 사용자 모임 태랑의 포스팅글입니다
  파이어폭스에 최적화 되어있습니다


이 포스트가 유용하셨다면 구독하세요 Add to Google

블로그코리아에 블UP하기

저작자 표시 비영리 동일 조건 변경 허락
Posted by purityboy
Linux l 2009/06/18 21:01

TRACKBACK :: http://www.commit.co.kr/trackback/57 관련글 쓰기

댓글을 달아 주세요

1 

카테고리

전체보기 (73)
넓은 세상의 이야기들 (3)
나의 이야기 (1)
Solaris (15)
Oracle (9)
Linux (35)
JAVA / C / 그외 개발언어 (0)
IT (9)
DB (1)