El módulo que más se usa para Ruby on Rails es Passenger. También es posible usar Passenger para lenguajes como node.js o python.
Los pasos que vamos a dar son los siguientes:
1.- Instalar passenger
2.- Compilar para nuestro apache y sistema
3.- Configurar Apache para nuestra aplicación
INSTALACIÓN DE PASSENGER
Se instala como una gema. Comprueba si lo tienes instalado en tu sistema:
$ gem list passenger *** LOCAL GEMS *** passenger (5.0.24, 5.0.23
Si no es el caso, instalas la gema:
$ gem install passenger
COMPILACIÓN PARA APACHE
Este paso deberías hacerlo como root. Para la versión 5.0.24, en mi caso lo tengo en "/var/lib/gems/2.2.0/gems/passenger-5.0.24". Es un proceso guiado de varios pasos. Ejecúta lo siguiente sin más:
# /var/lib/gems/2.2.0/gems/passenger-5.0.24/bin/passenger-install-apache2-module
Es posible que el proceso falle por la falta de alguna librería. Esto es muy específico de cada equipo. Lee atentamente los mensajes de error e instala los paquetes necesarios para la compilación en tu sistema.
Configuración del Passenger
El siguiente es un ejemplo de fichero para usar en Apache2. Lo habitual es colocarlo en el /etc/apache2/sites-available y usar a2ensite/a2dissite (hace un enlace simbólico a /etc/apache2/sites-enabled). Una vez creado este fichero, es necesario reiniciar Apache.
Seguramente estarás familiarizado con la configuración de apache. Si no es tu caso te diré que hemos supuesto:
- Suponemos que el servicio estará en la máquina con nombre DNS www.servidorpruebaruby.com y escuchará en el puerto 8080
- Vamos a usar la versión 2.2 de Ruby
- Suponemos que la aplicación está ubicada en /var/www/rails/RoRapp
- Queremos poner producción en linea. Cambiando "RailsEnv" puedes especificar otro entorno como development o test.
Aquí tienes el fichero de configuración para Apache concordante con lo que hemos comentado en el post:
LoadModule passenger_module /var/lib/gems/2.2.0/gems/passenger-5.0.24/buildout/apache2/mod_passenger.so
<ifmodule mod_passenger.c="">
PassengerRoot /var/lib/gems/2.2.0/gems/passenger-5.0.24
PassengerDefaultRuby /usr/bin/ruby2.2
</ifmodule>
Listen www.servidorpruebaruby.com:8080
NameVirtualHost www.servidorpruebaruby.com:8080
<virtualhost www.servidorpruebaruby.com:8080="">
ServerName www.servidorpruebaruby.com
DocumentRoot /var/www/rails/RoRapp/public
RailsEnv production
# RailsEnv development
ErrorLog /var/log/apache2/RoRapp_error_log
TransferLog /var/log/apache2/RoRapp_access_log
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
LogLevel warn
AllowOverride all
</virtualhost>
No hay comentarios:
Publicar un comentario