Rails en producción - Parte 5 - Mongrel e instalación de nuestra aplicación
ruby, rails, sysadmin Deja un comentarioMongrel
Mongrel será el encargado de atender las peticiones HTTP que lleguen del servidor web y ejecutar nuestra aplicación en el intérprete de Ruby.
Para instalar mongrel simplemente haremos:
$ sudo gem install mongrel mongrel_cluster --include-dependencies --no-rdoc --no-ri
Instalación de nuestra aplicación
Supondré que tenemos nuestra aplicación en un repositorio de subversion. En este caso, antes de poder hacer un export de la aplicación desde el repositorio, necesitaré instalar subversion:
$ sudo aptitude install subversion -y
Ahora ya podré transferir una copia de mi aplicación al servidor de producción. Supondré que la aplicación la vamos a instalar, por ejemplo, en /var/www/miaplicacion/current.
$ sudo chown usuario:usuario /var/www $ mkdir /var/www/miaplicacion $ cd /var/www/miaplicacion $ svn export http://svn.midominio.com/miaplicacion/trunk current
Necesitamos crear una base de datos para la aplicación:
$ mysql --user=root -p mysql> grant all on miaplicacion_production.* to miaplicacion@localhost identified by 'miaplicacion'; mysql> flush privileges; mysql> create database miaplicacion_production;
Es decir, hemos creado una base de datos llamada “miaplicacion_production” y un usuario “miaplicacion”, con idéntica password, que dispone de todos los permisos en “miaplicacion_production”.
Normalmente, tendremos que configurar el fichero config/database.yml de nuestra aplicación para que apunte a la base de datos que acabamos de crear:
production: adapter: mysql database: miaplicacion_production username: miaplicacion password: miaplicacion socket: /var/run/mysqld/mysqld.sock host: localhost encoding: utf8
Antes de poder arrancar nuestra aplicación deberemos instalar todas las gemas que utilicemos y que no hayamos instalado. Si no nos acordamos podemos intentar arrancar la aplicación y ver los errores. Leyendo el log de errores suele ser fácil identificar si nos falta alguna gema. Una que siempre viene bien será:
$ sudo gem install rake
Hay que tener en cuenta que si no especificamos la versión, gem install instalará la última versión disponible en el repositorio. Esto quiere decir que en el entorno de desarrollo y en el de test, si instalamos las gemas hace tiempo, las versiones pueden ser inferiores, y por lo tanto, nos podemos encontrar con problemas de compatibilidad. Para ver las gemas instaladas en una máquina y sus versiones podemos ejecutar:
$ gem list
Ahora ya puedo arrancar mi aplicación. De momento, para probar, arrancaremos un único proceso mongrel. Todavía no hemos configurado el servidor web para que apunte a los mongrels, así que no podremos comprobar con un navegador que funciona. Simplemente, veremos que arranca correctamente leyendo el fichero log/production.log:
$ cd /var/www/miaplicacion/current $ mongrel_rails start -d -e production -p 8000 -P log/mongrel8000.pid
Si en el fichero de log vemos que la aplicación ha arrancado, podríamos incluso comprobar que sirve peticiones:
$ cd $ wget http://localhost:8000/
Esto me guardaría en el directorio raíz del usuario un fichero llamado index.html con el HTML de la página raíz de mi aplicación. En el fichero de log debería poder ver la petición. ¿Quién necesita un browser?
En el último capítulo configuraremos un cluster de mongrels y apuntaremos el servidor web hacia ellos. Por eso, ahora, paramos el mongrel que hemos arrancado como prueba:
$ mongrel_rails stop -P log/mongrel8000.pid
Tutorial completo
- Rails en producción - Parte 1 - Introducción
- Rails en producción - Parte 2 - Configuración del servidor debian
- Rails en producción - Parte 3 - MySQL, Ruby y Rails
- Rails en producción - Parte 4 - Servidor web nginx
- Rails en producción - Parte 5 - Mongrels e instalación de nuestra aplicación
- Rails en producción - Parte 6 - Cluster de mongrels
![Validate my RSS feed [Valid RSS]](/wp-content/themes/javiervidal/images/valid-rss.png)