본문
일반적으로 Linux서버는 Redhat계열을 많이 쓰시겠지만 저의 경우 관리의 편리성, 강력한 보안, 확실한 지원 등의 이유로 Ubuntu를 서버로 사용하고 있습니다. 물론 저희 회사의 모든 서버도 Ubuntu입니다. 아무래도 CentOS등은 "짝퉁"임에는 확실하고, DVD한장이라는 설치파일의 용량에서도 별로 맘에 안들어서..ㅋ 어찌되었든, Ubuntu는 여러모로 Redhat과는 사뭇 다른점이 많이 있습니다. 가장 혼란스러운 것은 Apache의 가상호스트 관리부분과 Tomcat 등의 연동에서 차이가 있다는 점인데 이 부분은 여러 다른 개발자나 엔지니어도 좀 혼란이 있는 듯 합니다. 뭐 저는 Ubuntu를 비롯하여 Linux서버의 고수가 아니기 때문에 뭐가 좋다 나쁘다 말할 입장은 아니지만 저의 경우에 한정하여 설명을 드림을 먼저 말씀드리며.. 시작해 볼까요?
우선 Ubuntu 서버(32/64bit 동일)가 준비되어 있다고 가정합니다. 아시다시피 데비안계열의 Linux는 설치 및 패키지설치가 Redhat의 RPM보다는 더 쉽습니다. 물론 의존성문제에 대하여 솔직히 고민할 필요가 없지요. 대다수의 서버관리 고수님들은 소스컴파일을 권장합니다만 저의 경우 Ubuntu의 권장사항인 패키지설치방법을 선호합니다. APM등의 패키지가 일반적인 Linux의 설치경로와 다르고, 설정파일도 다르게 관리하지만 오히려 Ubuntu에 익숙해지면 더 관리가 쉽습니다.(계속해서 우분투 이야기만 하게 되네요.. ㅠㅠ)
일단, 다음의 가정에서 Railo를 설치해 봅시다.
1. Ubuntu 32/64bit 서버가 설치되어 있습니다.
2. Sun JDK는 설치하지 않았습니다.
(운영체제 설치시 기본설치를 하지 않았다는 이야기임. 즉 시스템에 JDK가 없다는 이야기)
3. APM은 설치되어 있습니다.
(모두 APT를 이용하여 설치한 패키지 설치본이라고 한정합니다. 그렇지 않고 소스컴파일의 경우 사람마다 경로가 다를 수 있어 추후 Resin설치시 설명이 귀찮아 집니다. 미리 말씀드리지만 저는 한 회사가 책임지고 소스를 제공하고, 설치패키지를 제공하는 것을 더 신뢰합니다.)
4. WAS는 설치되어 있지 않습니다.
(Tomcat, Resin등이 설치되어 있지 않다는 이야기)
5. 시스템 계정은 test라고 가정합니다. 또한 기본 홈디렉토리는 /home/test라고 가정합니다.
6. /home/test/html 이 기본 Web Root Directory 라고 가정합니다.
7. Apache2의 sites-available의 default 파일(Ubuntu apache2의 가상호스트 파일)에서 위 6번의 기본 웹루트 디렉토리가 지정되어 있습니다.
자, 이제 제일 먼저 해야 할 일은 Railo의 설치본을 다운로드 받는 것입니다. 다운로드한 설치파일을 서버에 업로드해도 되고, 서버에서 SSH로 직접 Wget을 이용하여 다운로드해도 됩니다. 일반적인 방법으로 우선 Railo의 설치파일을 다운로드 받겠습니다. http://www.getrailo.org에서 Download 메뉴로 이동하여 Railo Server All OS 의 railo-3.1.0.012-resin-3.1.2-without-jre.tar.gz (41 MB) 를 다운로드 받습니다. 현재(2009년 5월4일 기준)는 Railo의 최신버전은 3.1 Beta입니다. 뭐 Beta버전을 굳이 권장하는 이유는 우선 3.0버전에서 지원하지 않는 많은 기능을 지원하고 있기도 하거니와, Railo는 업데이트시 설치후 관리자모드에서 자동으로 업데이트 및 업그레이드가 되므로 나중에 설치를 다시 해줄 필요가 없기 때문입니다. 또한 3.0버전까지는 Open Source버전이 아니기 때문에 무료 Free Edition를 써야하며 License도 받아야 하고, Context의 생성개수도 제한됩니다. 그냥 정신건강에 편하게 3.1 Beta를 추천합니다.
Railo는 크게 3가지의 설치파일이 있습니다. Railo Express는 Jetty웹서버와 H2 DB, JRE가 내장된 버전으로서 다운로드 후 실행파일만 실행하면 바로 8600포트를 통하여 사용해 볼 수 있는 버전입니다. 설치하기 싫거나 Windows환경에서 개발시 가볍게 USB등에 넣어두고 다니면서 필요시에만 서버를 구동하고자 하는 경우에 추천해 드립니다. Railo Server는 말 그대로 개발이 아닌 실제 서비스를 위한 버전입니다. JRE가 내장된 버전도 있습니다만 시스템 환경변수설정에 어려움이 있는 분은 JRE가 내장된 버전, 나머지의 경우에는 without JRE옵션을 선택하시면 됩니다. 각각의 OS별로 설치본이 있습니다만 Windows 설치파일 exe버전을 제외한 나머지는 사실 동일한 버전입니다. 단지 압축포맷의 차이.. 마지막으로 Railo Custom의 경우 서버상에 WAS가 먼저 설치된 경우에 간단히 Deploy하는 버전입니다. 웹아카이브 파일(WAR파일)로 되어 있기 때문에 war파일을 서버에 Deploy하기만 하면 됩니다. 대부분의 WAS인 Tomcat, Jboss, Resin, WebSphere, WebLogic, Jrun, Glassfish 등에서 Deploy 가능합니다.
여기서는 WAS가 설치되어 있지 않다는 가정하에서의 설치방법에 대하여 이야기 드리고자 합니다. 사실 WAS에 Deploy하는 방법은 굳이 설명드릴 이유가 없이 각각의 WAS에서 제공하는 웹관리자모드에서 그냥 Railo의 war파일만 첨부하여 업로드만 하면 설치가 끝나버리기 때문이죠.
1. Railo 설치파일 업로드
다운로드 받은 Railo 설치파일 railo-3.1.0.012-resin-3.1.2-without-jre.tar.gz (41 MB) 을 자신의 FTP디렉토리(/home/test라고 가정)에 업로드 합니다. SSH로 접속하여 업로드한 파일을 /opt로 이동시킵니다.
#test@localhost:~$ sudo mv /home/test/railo-3.1.0.012-resin-3.1.2-without-jre.tar.gz /opt/
그런다음 /opt/ 로 이동 후 railo라는 디렉토리를 하나 만듭니다.
#test@localhost:/opt$ sudo mkdir /opt/railo
이제 railo-3.1.0.012-resin-3.1.2-without-jre.tar.gz 파일의 압축을 풀어줍니다.
#test@localhost:/opt$ sudo tar -xvf railo-3.1.0.012-resin-3.1.2-without-jre.tar.gz /opt/railo/
/opt/railo안에 압축이 풀렸는지 확인해 보고, railo-3.1.0.012-resin-3.1.2-without-jre.tar.gz 파일은 삭제해도 무방합니다.
2. Apache2 라이브러리, Sun JDK설치하기
기본적으로 APM이 깔려있다는 전제였으므로 apache2자체는 설치할 필요가 없지만 apxs2를 이용해서 컴파일해야 하기 때문에 다음과 같은 패키지를 설치합니다. Sun JDK는 꼭 설치해야 합니다.
#test@localhost:/opt$ sudo apt-get install build-essential sun-java6-jdk apache2-threaded-dev
만약 아파치가 설치되어 있지 않다면 위 명령줄 마지막에 apache2만 불혀주면 되겠죠? 자.. Ubuntu의 강력함(?)으로 자동으로 알아서 설치합니다. 물론 JDK의 시스템환경변수 따위를 profile에 정의할 필요도 없습니다. 왜냐하면 apxs2를 이용해서 컴파일 할 것이므로.. 자, 이제 설치가 끝났으면, /usr/bin아래에 apxs2가 생성되었는지 확인합니다. 확인이 되었으면, 다음 과정으로 넘어갑시다.
참고로, 위 가정에서 Web root directory는 /home/test/html로 한다고 했습니다. 기본적인 Apache2의 가상호스트는 미리 지정되어 있다고 가정했습니다만 가상호스트 설정파일에서 index.cfm파일과 index.cfml파일에 대한 지정을 해줘야 Apache2에서 cfm파일과, cfml파일을 처리할 수 있습니다. 따라서 Apache2의 가상호스트 파일에 DirectoryIndex index.html index.htm index.cfm index.cfml index.php와 같이 DirectoryIndex를 지정해 미리 주시길 바랍니다.
3. Railo 설치하기
엄밀히 말하지면 이 부분은 Railo를 설치한다기 보다, Resin을 설치하는 것이 맞습니다. 위에서도 설명드렸지만 Railo Server버전은 Resin이 통합되어 있습니다. 따라서 Railo Server 버전의 Resin을 Apache2와 연동만 해주면 Railo를 이용할 수 있습니다. 먼저, /opt/railo로 이동합니다. 그런다음 Resin을 컴파일해주면 됩니다. JAVA_HOME은 Ubuntu에서 Sun JDK를 APT를 이용해 설치했으므로 따로 지정하지 않아도 알아서 설정해 줍니다.(아.. 우분투의 편리함.. )
#test@localhost:/opt/railo$ sudo ./configure --with-apxs=/usr/bin/apxs2
#test@localhost:/opt/railo$ sudo make
#test@localhost:/opt/railo$ sudo make install
컴파일이 끝났습니다. 이제 설치의 대부분이 완료되었습니다. 마지막으로 apache2에서 Web root directory로 지정한 /home/test/html 디렉토리를 Resin의 가상호스트에서도 동일하게 지정해 주는 일만 남았습니다. 우분투에서는 Apache2의 가상호스트를 일반적인 Radhat 계열과는 다르게 vhost.conf 파일이 아닌, sites-available 이라는 디렉토리안에 각각의 가상호스트별로 설정파일을 두고 이를 sites-enabled 디렉토리로 링크를 걸어 로드하도록 되어 있습니다. 뭐 관점의 차이겠지만 하나의 가상호스트 파일안에 여러 가상호스트를 정의 하느냐(Redhat 계열의 방식), 각각의 가상호스트별로 설정파일을 두느냐의 차이점은 일장일단(一長一短)이 있다고 하겠습니다. 저의 경우 후자가 가상호스트가 많아질 수록 관리가 편리하다고 느끼지만... 아무튼 Ubuntu의 Apache2 설정에 대하여서는 다음의 링크를 참조해 보면 좋습니다. (버전 6.10대의 한글문서이지만 최신 9.04에도 동일하게 적용할 수 있습니다.)
https://help.ubuntu.com/6.10/ubuntu/serverguide/ko/httpd.html
4. Resin 가상호스트 설정하기
Apache2에서처럼 Resin의 가상호스트도 거의 동일하게 Webroot 디렉토리를 잘 지정만 해주면 됩니다. Resin의 가상호스트를 설정하는 파일은 /opt/railo/conf/ 에 있는 resin.conf 파일입니다. 이 파일을 Vi 편집기로 열어 다음 두 부분을 찾은 다음 경로를 맞게 수정해 주면 됩니다.(혹, Vi 편집기를 사용할 줄 모른다면 Vi 편집기를 이용하는 방법은 다음을 참조하세요.
http://kldp.org/KoreanDoc/html/Vim_Guide-KLDP/Vim_Guide-KLDP.html)
먼저 수정해야 할 곳은 access-log path 입니다. Resin 역시 접속로그를 남기게 되는데, 로그를 남기지 않도록 이 로그의 기본 디렉토리 정의 부분을 주석처리 합니다. 왜냐하면 Apache2에서 기본적으로 Access log를 기록하고 있으므로 굳이 두개의 접속로그를 남길 필요는 없으니까요. resin.conf 파일의 약 225라인 부분에 보면 다음과 같은 부분이 있습니다.
<access-log path="/home/test/logs/access.log" format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"' rollover-period="1W"/>
위에서는 access-log path를 /home/test/logs라는 디렉토리로 지정한 것인데, 이 부분을 주석처리합니다. 주석은 <!-- -->로 합니다. 아래처럼요.
<!--
>access-log path="/home/test/logs/access.log" format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"' rollover-period="1W"/<
-->
그리고나서, 약 253라인 근처에서 다음의 부분을 찾아 수정합니다.
<!-- configures the default host, matching any host name -->
<host id="" root-directory="/home/test/html">
<!--
- configures an explicit root web-app matching the
- webapp's ROOT
-->
<web-app id="/" root-directory=""/>
<web-app id="/resin-admin" root-directory="${resin.home}/php/admin">
<!--
- Administration application /resin-admin
-
- password is the md5 hash of the password.
- localhost is true to limit access to the localhost
-->
<prologue>
<resin:set var="resin_admin_password" value=""/>
<resin:set var="resin_admin_localhost" value="true"/>
</prologue>
</web-app>
</host>
자, 이제 수정된 resin.conf 파일을 저장하고, Resin을 시작해 주고, Apache2를 재시작 해 줍니다. 먼저 Resin의 실행/중지 파일은 /opt/railo/bin안에 있는 httpd.sh 파일입니다.
#test@localhost:/opt/railo/bin$ sudo ./httpd.sh start
그리고, 마지막으로 apache2를 재시작해 줍니다. Ubuntu Server 8.XX 또는 그 이하 버전에서는 /etc/init.d 안의 apache2 파일이 실행/중지 파일입니다. 다음과 같이 재시작합니다.
#test@localhost:/etc/init.d$ sudo ./apache2 restart
만약 Ubuntu Server 9.04를 쓰고 있다면 아무곳에서나 다음과 같이 간편하게 재시작할 수 있습니다. service 명령어로 apache2, mysql 등을 구동/재시작/중지할 수 있습니다.
#test@localhost:/etc/init.d$ sudo service apache2 restart
5. Railo 웹관리자 접속
이제 Railo의 웹관리자를 브라우저를 통하여 접속해 봅니다. http://도메인 또는 아이피/railo-context/admin/index.cfm 를 브라우저 주소창에 입력하고 접속해 봅니다. 정상적으로 접속이 되지 않는다면 위 과정을 다시한번 살펴보시길 바랍니다. 처음 Railo의 웹관리자로 접속하면, Server Administrator와 Web Administrator의 비밀번호를 꼭 지정해 주시길 바랍니다. Railo의 웹관리자에 대한 부분은 다음 Post에서 자세히 다뤄보겠습니다.
6. 참고
- Apache2의 가상호스트 default파일의 설정 예제
- Resin.conf 파일의 설정 예제
관련링크
댓글목록
등록된 댓글이 없습니다.