Ver 1.0/리눅스

Apache 2.2 + Tomcat5.5 연동

ArtWorker 2008. 3. 3. 21:57

한 달이라는 기간 동안 마음먹고 시작한 Apache, Tomcat 연동 세팅을

java, tomcat, jsp, jdk, proxy_ajp 등 기본 개념도 확립되지 않은 상태에서 어렵게 시작 한일로

수 없이 많이 페도라를 재설치 한 끝에 어렵게 성공했다.

나 같은 초보들의 위해 초 간단 세팅 방법을 소개한다.

물론 내가 알아서 했다기 보다는 okjsp, kdlp, 블로거들과 Google 검색을 통해 할 수 있었다.

 

페도라8 설치

페도라8은 따로 설치 방법을 설명하기로 하겠다.

참고로 그 동안 내가 리눅스를 설치 할 때는 풀패키지로 선택해서 설치했다.

다른 리눅스에서 그렇게 해야 Apache, php, mysql 세팅이 편했다.

하지만 페도라8은 그렇게 했다가 더욱 복잡해지는 바람에

패키지 선택으로 했다. 하지만 이것도 의미가 없었다.

그냥 기본 패키지로만 해도 추후 설치가 쉽게 가능했다.

 

기본적인 사항

1. 기본패키지 선택 설치

2. 세팅을 위해 방화벽 사용을 하지 않는다

3. selinux도 사살(서비스를 죽인다)을 한다.

 

1. Apache2.2 설치

yum 으로 설치를 한다

yum -y install httpd\*

페도라 사이트 또는 미러사이트에 있는 httpd 관련 패키지들의 설치가 된다.

참고사항 ) 어떠한 패키지가 있는지 확인 하고 싶다며 yum info httpd\* |more

통해 미리 알고 필요한 거만 yum install '패키지명' 으로 설치해도 된다.

아파치 실행

service httpd start

웹브라우저를 통해 확인 해보다

http://IP/ 

이상이 없다며

Fedora Test Page

이라는 큰 제목의 페이지가 뜰 것이다. 그럼 정상이다.

이 파일은 index 파일이 없을 때 나온다.

index 설정 마지막에 하고 넘어가자.

Apache 서비스를 사살하자.

service httpd stop

그냥 중지하지 않아도 상관은 없다.

 

2. 자바설치(J2SE)

 

이 부분이 가장 난해 했다.

연도도 잘 안 되고 자바 컴파일도 안되고 오류 나며 수정도 힘들었다.

고수들이 본다며 웃기겠지만 그냥 쉽게 가기로 했다.

yum  설치해 버렸다.

yum -y install java\*

이렇게 하고 나니 안 좋은 점이 많기는 하다.

yum install 명령은 java 관련돼서 모든 것이 설치가 되니

불필요한 것도 설치가 된다. 또한 업데이트도 된다.

설치 후 학인을 해본다.

java -version

출력 값이

java version "1.7.0"
IcedTea Runtime Environment (build 1.7.0-b21)
IcedTea Client VM (build 1.7.0-b21, mixed mode)

이렇게 나오며 끝.

모르는 부분이 더 쉽게 끝났다.

 

3.Tomcat5.5 설치

이제 톰캣이다.

다시 yum을 실행하자

 

yum -y install tomcat5\*

 

jakarta 라고 실행해 보다.

 

yum -y install jakarta\*

 

참고로 2008 1월 현재 tomcat 6.x까지 나왔다.

그래서 yum -y install tomcat6\* 으로 해봤지만 되지 않는다.

6.x로 설치를 하고 싶다. tomcat.apache.org에서 직접 다운 받고 소스 컴파일을 하기를..

두개의 파일을 수정해준다.

확인 따라 해본다.

vim /usr/share/tomcat5/conf/workers.properties

 

workers.tomcat_home=/var/tomcat3 -> 주석처리

#workers.tomcat_home=/var/tomcat3

workers.tomcat_home=/user/share/tomcat5 ->새로 입력

 

workers.java_home=/opt/IBMJava2-13 -> 주석처리

#workers.java_home=/opt/IBMJava2-13

workers.java_home=/usr/lib/jvm/java ->새로 입력

 

실제로 경로가 맞는지 학인 해본다.

 

vim /usr/share/tomcat5/bin/relink

 

find /var/lib/tomcat5/webapps -mindepth 1 -maxdepth 2 -type d

이 부분을 확인한다. 이 문장이 틀린 곳이 있으니 확인 후 위처럼 변경한다

 

service tomcat5 start

웹브라우저를 통해 확인 해보다

http://IP:8080/ 

 

이상이 없다며 고양이가 나올 것이다.

 

올 것이 왔다. 이제부터 연동을 시작 한다.

 

4.mod_proxy_ajp 설정

Apache에 있는 mod_proxy_ajp 모듈을 통해 확장자 .jsp 파일은 Apache가 아닌

tomcat이 처리 하도록 한다.

Apache가 이상 없이 설치가 되어있다며 /etc/httpd/conf.d/proxy_ajp.conf 파일이 있을 것이다.

 

순서대로 확인 하고 따라 하자

vim /etc/httpd/conf.d/proxy_ajp.conf

 

#ProxyPass /tomcat/ ajp://localhost:8009/ -> 주석 해제

ProxyPass /tomcat/ ajp://localhost:8009/

 

vim /etc/httpd/conf.d/rewrite.conf -> 새로 생성

RewriteEngine on  #모듈 사용 여부

RewriteCond %{REQUEST_FILENAME} .jsp  # 사용 형식 .jsp

RewriteRule (.*) ajp://localhost:8009$1 [P]  # 처리 방식 [P] ->proxy ajp 사용

위 밑줄 부분은 mod_rewrite 모듈을 사용한다.

/etc/httpd/conf/httpd.conf 에서 모듈로드를 하고 있는지 확인한다.

참고 사항으로 이 부분를 처음에 proxy_ajp.conf 입력을 했었다. 물론 이상이 없었다.

그렇게 해도 상관도 없고 아무런 오류 없다.

하지마 virturehost를 하면서 오류가 발행했다. 메인 사이트만 되고 virturehost 되지 않는 것이다.

그래서 새롭게 파일을 만들어서 각각의 사이트에서 적용하게 했다.

 

5.디렉토리설정

이 부분이 정말 힘들었다. 말 그대로 개고생 했다.

apache 사용하게 되며 보통은 “/var/www/html” 또는 “/home/계정으로 기본 디렉토리는

가져가는 게 버릇이 되다 보니 tomcat5 기본 디렉토리는 사용하고 싶지 않았다.

심볼링크로 변경해도 괜찮겠지만 일단은 virturehost를 할 경우를 대비해 디렉토리 변경을 해봤다.

 

참고사항 - virturehost 설명은 추후에 하겠다.

 

1)server.xml 수정

vim /etc/tomcat5/server.xml

<Host name="localhost" appBase="webapps" ...

이부분의 appBase="webapps"  을 수정한다. 기본폴더이다.

<Host name="localhost" appBase="/var/www/html/" ...

또는

<Host name="localhost" appBase="/var/www/" ...

 

절대 경로를 사용한다.

 

<Context path="" docBase="" reloadable="true"/>

또는

<Context path="" docBase="html" reloadable="true"/>

 

path 는 경로 값을 지정하는 것이다. 아무것도 없으므로 최상위 폴더를 뜻한다.

docBase 은 실제 디렉토리값을 말한다.

위 문장인 host context를 사용하는 것은 기본 디렉토리을 /var/www/html로 사용하고

최상의 폴더를 지정하지 않기에 /var/www/html을 최상의 폴더로 사용한다

밑 문장인 host context를 사용하는 것은 기본 디렉토리을 /var/www/로 사용하고

최상의 폴더를 html로 지정해서 사용한다.

큰 차이점은 없다. 편한 대로 사용하고 프로그램 개발보다는 서버관리를 하는 관점에서

세팅을 할 때는 위 사항으로 세팅 하는 게 편리하다.

참고로 <Context path="" ... 입력하지 않으며

기본값은 var/www/ROOT,var/www/html/ROOT 가 된다.

 

2) httpd.conf 수정

기본 디렉토리가 /var/www/html 이므로 수정 하지 않는다.

directoryindex 값에 test.jsp를 추가 한다.

vim /var/www/html/test.jsp -> 새로 생성

<%@ page contentType="text/html; Charset=EUC-KR" %>

<%

out.println("Hello");

%>

저장 후 Tomcat5, Apache 순으로 restart 한다.

Apache, Tomcat5 순으로 하며 Tomcat5 설정 변경 사항을 Apache는 알지 못한다.

순서를 유의 하기를 바란다.

 

여기까지 해서 이상이 없기를 바라며

가장 기본적인 세팅은 추후에 하겠다.