Instalar GIT, RVM, Ruby, Ruby on Rails y Passenger Ruby Git
Publicado: 20 de Jul del 2011Prohibida la reproducción total o parcial de este artículo sin el previo consentimiento de Webtutoriales.com
Preparar un entorno de producción para hacer deploys de aplicaciones Ruby on Rails
En este artículo veremos cómo instalar todas las aplicaciones necesarias para montar un servidor en un entorno de producción para aplicaciones Ruby on Rails.
Instalar Git
Git es un sistema de control de versiones. Aunque sus posibilidades son muchas y altamente recomendado para utilizarlo en aplicaciones Ruby on Rails, en este manual sólo lo requerimos como dependecia para poder instalar RVM.
yum install git-core
Instalar RVM
RVM sirve para gestionar distintas versiones de Ruby en un mismo sistema además de permitir gestionar distintos grupos de gems (librerías de código para aplicaciones Ruby on Rails). Es extremadamente útil si se trabaja con varios proyectos a la vez que usan distintas versiones.
RVM se puede instalar usando curl. Como usuario root ejecutaremos:
bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
Ahora con algun editor de texto vi, nano, etc modificamos:
vi /root/.bash_profile
Añadir al final de todo
[[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm"
Con este script lo que haremos es cargar el comando rvm para poder usarlo en la línea de comandos. Y para aplicar los cambios:
. ~/.bash_profile
Para comprobar que la instalación ha funcionado:
type rvm | head -1
Tiene que devolver exactamente este texto
"rvm is a function"
Ahora podemos usar este comando para que nos diga si necesitamos alguna dependencia
rvm notes
Por ejemplo en mi caso instalé
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel
Instalar Ruby 1.9.2
Ahora con RVM ya podemos instalar Ruby (tardará un poco). Instalaremos la versión 1.9.2, pero lo bueno de RVM es que más adelante puedes instalar cualquier versión.
rvm install 1.9.2 rvm install 1.8.7 ...
Para especificarle qué versión usar y ponerla por defecto:
rvm use 1.9.2 ruby -v rvm --default use 1.9.2
Instalar Ruby on Rails
Tan sólo hay que hacer:
gem install rails --no-ri --no-rdoc
¿Fácil, no?. El parámetro --no-ri y --no-rdoc sirve para no instalar la documentación. Al ser entorno de producción no la necesitamos.
A tener en cuenta que estamos instalando las gems en el gemset por defecto dentro de la versión en que nos encontramos. Podemos crear varios gemsets, e incluso exportarlos e importarlos.
rvm gemset list
Nos muestra los grupos de gems disponibles y el que estamos usando.
Instalar Passenger
Passenger es un módulo para Apache y Nginx para poder ejecutar las aplicaciones Rails. Es mucho más sencillo hacer deploys que antes cuando se utilizaban instancias de Mongrels.
gem install passenger --no-ri --no-rdoc
Ahora ejecutaremos el instalador de passenger para el servidor web Apache.
passenger-install-apache2-module
Es un assistente de instalación excepcionalmente completo y te guía sobre las dependencias y problemas que puede haber y como solucionarse. Con los paquetes instalados anteriormente apenas tendremos problemas.
Ejemplo de nuestra instalación:
* GNU C++ compiler... found at /usr/bin/g++ * Curl development headers with SSL support... found * OpenSSL development headers... found * Zlib development headers... found * Ruby development headers... found * OpenSSL support for Ruby... found * RubyGems... found * Rake... found at /usr/local/rvm/wrappers/ruby-1.9.2-p180/rake * rack... found * Apache 2... found at /usr/sbin/httpd * Apache 2 development headers... not found * Apache Portable Runtime (APR) development headers... not found * Apache Portable Runtime Utility (APU) development headers... not found
En nuestro caso faltaban algunas dependencias, que el mismo manual nos dice cómo instalarlas, por ejemplo: (Fijaros bien en vuestro caso, ya que pueden variar)
yum install httpd-devel yum install apr-devel yum install apr-util-devel
Una vez instaladas se puede volver a llamar al assistente de instalación de Passenger
passenger-install-apache2-module
Finalmente, hay que abrir el archivo de configuración de apache httpd.conf y añadir estas líneas:
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/ext/apache2/mod_passenger.so PassengerRoot /usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5 PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.2-p180/ruby
Reiniciamos Apache:
/etc/init.d/httpd restart
Realizar deploy
Ejemplo de cómo hacer un deploy (subir la web) a producción de una aplicación Ruby on Rails. Si tenemos la aplicacion en /applications/nuestra_aplicacion_rails, añadiremos un virtual host en el archivo de configuración de Apache (normalmente en /etc/httpd/conf/httpd.conf) parecido a este:
ServerName www.tudominio.com DocumentRoot /applications/nuestra_aplicacion_rails/public # Ruta de vuestra aplicación rails, aseguraos de apuntar a la carpeta 'public'! AllowOverride all Options -MultiViews
Configurar los Virtual Hosts de Plesk
Si no se utiliza plesk se puede obviar este paso. Con plesk la configuración del virtual host debemos ponerla en un archivo distinto (en vez de en el archivo de configuración de apache anterior). Normalmente se encuentra en:
vi /var/www/vhosts/tudominio.com/conf/vhosts.conf
Añadiendo:
ServerAlias *.tudominio.com ServerName www.tudominio.com DocumentRoot /applications/nuestra_aplicacion_rails/public AllowOverride all Options -MultiViews
Y ejecutamos esto para que al regenerar la configuración del plesk se mantenga:
/opt/psa/admin/bin/websrvmng --reconfigure-vhost --vhost-name=tudominio.com -a -v
Probando una aplicación
Podemos hacer una aplicación de prueba antes de subir la definitiva:
mkdir /applications/ cd /applications rails new nuestra_aplicacion_rails
Si todo ha funcionado accedemos a nuestro dominio y veremos la página inicial de una aplicación rails!
Problemas habituales
Uno de los problemas habituales tiene que ver con los permisos y los usuarios asignados a las carpetas. Habitualmente no se usa el usuario root en las carpetas de las aplicaciones. Una buena idea es usar el mismo usuario de apache o crear uno nuevo con permisos adecuados para poder escribir y leer en los directorios de las aplicaciones.
Comentarios
Artículos relacionadosVer más
- Cómo instalar Ruby on Rails en Windows
- Modelo Vista Controlador
- ¿Qué es Ruby on Rails?
- Introducción a Ruby
- GIT: Control de versiones
- Ruby: Programación orientada a objetos
- Tratamiento de excepciones en Ruby
- Paginación en Ruby on Rails
- Urls amigables en Ruby on Rails
- Usando la consola de Ruby on Rails