Program/Linux

Linux 에서 apache , resin 연동

나이트로 2008. 5. 19. 10:47
※ Linux에서 Apache, Resin 연동 (redhat 7.0 - 7.3)
(NOCT.PE.KR에서 퍼옴)
 
servlet, jsp 실행을 위한 caucho의 resin servlet container 를 apache webserver와 연동하여 봅니다.
먼저 jdk와 apache, mysql이 설치되어 있다고 가정합니다.
리눅스 상에서의 jdk 설치는 [jdk 설치 및 설정], apache 와 mysql 의 설치는 [APM 설치 및 설정]를 참조하세요.
이전의 설정을 이용하는 경우가 있을지도-_- 모르니 꼭 참고해야 합니다.
이제 resin을 성공적으로 연동하고나면 하나의 웹서버에서 php와 jsp를 모두 실행할 수 있겠군요. ^_^;;
1. 설치
caucho.com 에서 resin servlet/jsp 엔진을 다운받습니다. 현재(2002년 7월) 최신버전이 2.1.2 입니다.
저는 2.1.1 버전을 다운받았습니다. 파일명은 resin-2.1.1.tar.gz 입니다.

* resin 설치

$ cd /home
   -> resin-2.1.1.tar.gz파일을 /home 디렉토리에 받아놓았습니다

$ tar xvfz resin-2.1.1.tar.gz
   -> resin-2.1.1.tar.gz 파일압축을 해제합니다.

$ cd resin-2.1.1
   -> 압축해제 후 resin-2.1.1 디렉토리가 생성됐습니다.

$ ./configure --with-apache=/usr/local/apache --with-java-home=/usr/java/jdk1.3
    -> 아파치의 설치 경로와 jdk의 설치경로를 정확히 지정해줍니다.

$ make
$ make install

[참고] configure 에 대한 자세한 옵션은 ./configure --help 로 볼 수 있습니다.

2. 설정
resin 설치가 끝났습니다. 쉽지요? ^_^;; 그럼 /usr/local/apache/conf/httpd.conf 파일을 확인해보죠.
httpd.conf 파일의 가장 하단에 다음이 추가되어 있으면 아파치 모듈로 잘 붙은것입니다.

# httpd.conf 파일 하단 추가된 곳

LoadModule caucho_module /usr/local/apache/libexec/mod_caucho.so
AddModule mod_caucho.c
<IfModule mod_caucho.c>
      CauchoConfigFile /home/resin-2.1.1/conf/resin.conf
</IfModule>


- 환경변수 설정
vi 에디터로 /etc/profile 파일을 열어 PATH와 CLASSPATH, JAVA_HOME 및 RESIN_HOME을 설정합니다.

# /etc/profile 파일

CLASSPATH="$CLASSPATH:/home/resin-2.1.1/lib"
#기존의 CLASSPATH 변수에 새로운 경로를 더합니다
PATH="$PATH:/home/resin-2.1.1/bin"
#기존의 PATH 변수에 새로운 경로를 더합니다
JAVA_HOME="/usr/java/jdk1.3"
# jdk 가 설치된 경로입니다
RESIN_HOME="/home/resin-2.1.1"
# resin 설치 경로입니다
........
export PATH USER LOGNAME MAIL HISTSIZE INPUTRC CLASSPATH JAVA_HOME RESIN_HOME
# 밑줄친 변수가 export 구문에 없다면 위와 같이 추가합니다

자.. 이제 저장하고 쉘로 빠져 나옵니다. 바뀐 환경변수를 적용시켜주기 위해 command line에서
. /etc/profile 또는 source /etc/profile 해줍니다.
바뀌었는지 안바뀌었는지는 echo 를 이용해서 알 수 있겠네요.(예 : echo $CLASSPATH)

- resin.conf 수정
환경설정 마지막 입니다. resin의 환경설정 파일인 resin.conf를 수정해줍니다.
/home/resin-2.1.1/conf 디렉토리 밑에 존재합니다.

# resin.conf 파일 66 line 부근 웹문서의 root 디렉토리를 정해주는 부분입니다.
#아파치의 DocumentRoot 와 동일하게 합니다.(빨간 글씨 부분을 수정)

<!--
  - The root file directory of the server. Apache users will change
  - this to /usr/local/apache/htdocs and IIS users will change it
  - to d:\inetpub\wwwroot
-->
<doc>/home/htdocs</doc>

<!-- the http port -->
<http port='8080'/>


3. Test
-1. 드디어 resin 실행
resin을 실행하는 파일은 /home/resin-2.1.1/bin/httpd.sh 라는 스크립트 파일입니다.
다음과 같은 몇가지의 옵션을 붙일 수 있는데요.

$ cd /home/resin-2.1.1/bin
$ httpd.sh : resin을 foreground 로 실행합니다. - ①
$ httpd.sh start : resin을 background 로 실행합니다. 주로 쓰겠지요. - ②
$ httpd.sh stop : resin을 멈춥니다. - ③
$ httpd.sh restart : resin을 재시작합니다. - ④

우리는 ② 번으로 일단 resin을 실행시킵니다. 그리고 아파치도 물론 띄워야 합니다.
테스트 할 jsp 문서 하나를 작성해봅니다. 아까 지정한 웹문서의 루트디렉토리에 만듭니다.(/home/htdocs)

<%
    // test.jsp
    out.println("Hello, JSP");
%>

-2. 브라우저에서 확인
브라우저에서 http://ip주소/test.jsp

오호... 성공입니다. ^___^;;

-3. servlet 테스트
resin을 실행시킨 후에 /home/htdocs/WEB-INF 라는 디렉토리가 생성되었을 것입니다.
그 밑에 classes 라는 디렉토리를 만듭니다. 이 디렉토리가 servlet 파일을 위치시키는 곳입니다.
(물론 resin.conf 파일에서 수정 가능합니다.)

$ cd /home/resin-2.1.1/doc/examples/basic/WEB-INF/classes
$ cp *.java /home/htdocs/WEB-INF/classes
Env.java 와 HelloServlet.java 를 /home/htdocs/WEB-INF/classes 디렉토리로 복사

servlet 파일은 http://ip/servlet/class명 과 같이 servlet 이라는 경로를 통해 접근 가능합니다.
서블릿 엔진이 어떤 것이냐에 따라 차이가 있지만 resin에서는 그렇다는 것입니다.
복사한 예제 파일을 브라우저를 통해서 확인해 보죠.

간단하게 성공하고 말았습니다. 하지만 작년에 처음 시도했을때는 밤을 새웠답니다.(버벅버벅) ^_^;;
자세한 설정은 resin.conf 와 httpd.conf 파일을 잘 살펴보며 할 수 있습니다.



'Program > Linux' 카테고리의 다른 글

Jeus 관리툴  (0) 2011.12.13
리눅스 ssl 설치  (0) 2008.05.19
리눅스 페도라 에서 마우스 커서가 안보일때  (0) 2008.05.19
subversion(svn) 리눅스 설치  (0) 2007.12.20
리눅스 기본 팁  (0) 2007.06.14