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)를
이용하여 설치를 하겠습니다
작업환경( 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
thttpd.i386 2.25b-4.el5.rf rpmforge
이렇게 나오는데 httpd.본인아키텍처로 설치하면됩니다
저는 32bit로 리눅스가 설치되엇기에
[root@ip149080 ~]#yum –y install httpd.i386
해서 설치 합니다
Httpd.conf는 따로 인터넷에서 최적화된 세팅법이나 본인에 맞게
맞추시고 본문건은
[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
중략….많이 나옵니다 그중보면 깔끕스럽게
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
전에는 이내용대로 사용하였으나
주석처리시 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" />
[위내용 새로써줍니다]
추가한내용입니다
# service tomcat5 start 로 올려주시구요
http://localhost:8080 이나 http://아이피주소:8080
를 쳐서 고양이가 나오는지 확인해 줍니다 않나오면 먼가 문제가있는것입니다
4.Connector설치
http://www.apache.org/dist/tomcat/tomc ··· aries%2F
바이너리 형태로 배포 되는 mod_jk.so를 사용하도록 하겠습니다
os에 맞게 다운 받습니다 저는 32bit에 리눅스이니
http://www.apache.org/dist/tomcat/tomc ··· Fi386%2F
위치에 있는 mod_jk-1.2.31-httpd-2.2.x.so
를 다운받아 사용하겠습니다
다운받은뒤 복사를 합니다
# cp mod_jk-1.2.31-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/tomc ··· c.tar.gz
위 경로가 바로다운받을수 있는 링크이구요 1.2.31 버전 이네요
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
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
만약 고양이 페이지가 없으신분들은 아에 아무것도 않나올것 입니다
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
이런 에러가 발생시에는
이유는 모르겠지만 저 에러메세지에서 표시하는
디렉토리 경로대로 디렉토리 생성해주면 문제가 해결됩니다
포스팅 다운받기
파이어폭스에 최적화 되어있습니다
이 포스트가 유용하셨다면 구독하세요
tomcat-default-page.zip
yum으로apache_tomcat연동-정현호.pdf



0