관심거리/프로그래밍

Ruby on Rails 개발환경 구축

라셍 2007. 7. 5. 11:16

Ruby On Rails : Apache 2.2.x + ProxyBalancer + Mongrel 설치
Ruby On Rails 개발 환경 구축

httpd 모듈 추가
1. 컴파일시 추가할 옵션

--enable-rewrite --enable-proxy --enable-proxy-balancer --enable-proxy-http

2. httpd 소스에 포함된 module
 *  mod_proxy,  mod_proxy_balancer,  mod_proxy_http,  mod_rewrite 
 * 추가할 module : mod_proxy_html.c
 * module 추가하기

{APACHE_HOME}/bin/apxs -cia {APACHE_SRC_HOME}/modules/proxy/mod_proxy.c
{APACHE_HOME}/bin/apxs -cia {APACHE_SRC_HOME}/modules/proxy/ mod_proxy_balancer.c
{APACHE_HOME}/bin/apxs -cia {APACHE_SRC_HOME}/modules/proxy/mod_proxy_http.c
{APACHE_HOME}/bin/apxs -cia {APACHE_SRC_HOME}/modules/mapper/mod_rewrite.c 
{APACHE_HOME}/bin/apxs -ci -I/usr/include/libxml2 {APACHE_SRC_HOME}/modules/proxy/mod_proxy_html.c
 * libxml2 라이브러리가 설치되어 있어야함
 * 설치후 {APACHE_HOME}/modules 에서 확인

Ruby 설치
  * download site : http://www.ruby-lang.org/en/.
  * 설치
tar xzf ruby-x.y.z.tar.gz
cd ruby-x.y.z
./configure
make
make test
sudo make install (혹은 root로 make install)


RubyGems 설치
  * download site : http://rubygems.rubyforge.org
  * 설치
tar xzf rubygems-0.8.10.tar.gz
cd rubygems-0.8.10
sudo ruby setup.rb
sudo gem install rails --include-dependencies

mongrel 과 mongrel_cluster 설치
  * root로 설치

gem install daemons gem_plugin mongrel -include-dependencies
gem install mongrel_cluster

mongrel Test
  * 간단한 테스트
   * 웹 애플리케이션 만들기

mkdir {TEST DIR}
cd {TEST DIR}
rails test(웹 애플리케이션 명)

   * mongrel 환경 설정 (root)
mongrel_rails cluster::configure -e development \
   -p 8000 \
   -N 3 \
   -c {TEST DIR}/test/ \
   -a 127.0.0.1 \
   --user {USER} --group {GROUP}
   * mongrel 실행/종료

   mongrel_rails start -d -p 8000 -e production -l /var/log/mongrel.log -P /var/log/mongrel0.pid -c /hosting/test
   mongrel_rails start -d -p 8001 -e production -l /var/log/mongrel.log -P /var/log/mongrel1.pid -c /hosting/test
   mongrel_rails start -d -p 8002 -e production -l /var/log/mongrel.log -P /var/log/mongrel2.pid -c /hosting/test
    
  * 종료 - mongrel_rails cluster::stop

 * 웹브라우저로 확인
   * http://localhost:8000  http://localhost:8001  http://localhost:8002

httpd.conf 설정하기
 * Module 추가

LoadModule proxy_module libexec/apache22/mod_proxy.so
LoadModule proxy_connect_module libexec/apache22/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache22/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
LoadModule proxy_ajp_module libexec/apache22/mod_proxy_ajp.so
LoadModule proxy_balancer_module libexec/apache22/mod_proxy_balancer.so
LoadModule rewrite_module     modules/mod_rewrite.so

* VirtualHost 추가

<VirtualHost *>
   ServerName ruby.atat.co.kr
   DocumentRoot {TEST_DIR}/test
  
   RewriteEngine On
   RewriteRule ^/$ /index.html [QSA]
   RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
   RewriteRule $/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]

   <Directory /hosting/test>
      AllowOverride all
      Options ExecCGI FollowSymLinks
      Order allow,deny
      Allow from all
   </Directory>
   <Proxy balancer://mongrel_cluster>
      BalancerMember http://127.0.0.1:8000
      BalancerMember http://127.0.0.1:8001
      BalancerMember http://127.0.0.1:8002
   </Proxy>
 </VirtualHost>