Instalar mod_rails en un servidor linux con debian o ubuntu
En este articulo vamos a explicar como instalar el fantastico modulo mod_rails que nos va a permitir correr aplicaciones rails en apache de una forma muy optima
1er Paso: instalación de ruby enterprise.
Primero vamos a instalar Ruby Enterprise Edition cómo recomiendan los chicos de passenger (mod_rails), también podemos usar el ruby convencional.
Para esto nos bajamos el .tar.gz con los sources y lo descomprimimos:
wget -c http://rubyforge.org/frs/download.php/51100/ruby-enterprise-1.8.6-20090201.tar.gz tar -xvzf ruby-enterprise-1.8.6-20090201.tar.gz -C /opt
Yo lo voy a instalar en /opt que es dónde se instalan los paquetes que no vienen con la distro entonces quedaría:
/opt/ruby-enterprise-1.8.6-20090201/
Instalamos las libs necesarias para compilar ruby EE:
apt-get install g++ zlib1g-dev libssl-dev build-essential libreadline5-dev libmysqlclient15-dev
ahora instalamos ruby
cd /opt/ruby-enterprise-1.8.6-20090201/ ./installer
en el caso que no funcione tratar con
./installer --no-tcmalloc
En la opcion que da para elegir el path de instalacion se puede poner:
/opt/ruby-enterprise o directamente hacer un link ln -s /opt/ruby-enterprise-1.8.6-20090201/ /opt/ruby-enterprise
Ahora tenemos que crear una serie de links simbólicos para que nos quede la versión de Ruby EE instalada correctamente en el sistema como default:
ln -fs /opt/ruby-enterprise/bin/gem /usr/bin/gem ln -fs /opt/ruby-enterprise/bin/irb /usr/bin/irb ln -fs /opt/ruby-enterprise/bin/rake /usr/bin/rake ln -fs /opt/ruby-enterprise/bin/rails /usr/bin/rails ln -fs /opt/ruby-enterprise/bin/ruby /usr/bin/ruby ln -fs /opt/ruby-enterprise/lib/ruby/ /usr/lib/ruby
2er Paso: instalación de mod_rails
Ya tenemos instalado Ruby EE entonces ahora vamos a instalar mod_rails.
bajamos los sources de passenger:
wget -c http://rubyforge.org/frs/download.php/48622/passenger-2.0.6.tar.gz tar -xvzf passenger-2.0.6.tar.gz -C /opt
Instalamos las lib necesarias para compilar:
apt-get install apache2-prefork-dev build-essential
Instalamos apache prefork:
apt-get install apache2-mpm-prefork
Ahora tenemos que instalar mod_rails:
cd /opt/passenger-2.0.6 ./bin/passenger-install-apache2-module
3er Paso: Configurar apache con modrails
Editamos el archivo /etc/apache2/mods-available/passenger.conf
y ponemos lo siguiente:
PassengerRoot /opt/passenger-2.0.6 PassengerRuby /opt/ruby-enterprise/bin/ruby
editamos el archivo /etc/apache2/mods-available/passenger.load
y ponemos lo siguiente:
LoadModule passenger_module /opt/passenger-2.0.6/ext/apache2/mod_passenger.so
luego tenemos que activar el modulo entonces ejecutamos el siguiente comando:
a2enmod passenger
Listo ahora lo único que tenemos que hacer cada vez que agregamos una app
es agregar un virtual host en apache.
Editamos el archivo /etc/apache2/sites-available/nueva_app.com
y ponemos lo siguiente:
ServerName nueva_app.com ServerAlias www.nueva_app.com DocumentRoot /var/www/apps/nueva_app.com/public RailsBaseURI / CustomLog /var/log/apache2/nueva_app.com.log "%h %l %u %t \"%r\" %>s %b"
Como pueden ver puse el archivo de log separado del lo general de apache.
luego de esto habilitamos el nuevo virtual host
a2ensite nueva_app.com habilitamos el modulo rewrite(importante! sin esto passenger no funciona) a2enmod rewrite
y reiniciamos apache:
/etc/init.d/apache2 reload
disfruten!




gracias che, lo volvi a leer y ahora me parece un poco menos complicado.