Stanmx

Buscando la accesibilidad

Como subir una app de Rails en Site5

Publicado en ruby-on-rails site5 el 20/08/10 a las 09:17 am

Meses atrás, mientras escribía mis primeras líneas en Ruby on Rails salto la duda sobre en donde hospedaría mis futuros proyectos, investigando posteriormente llegue a la conclusión de probar el hosting de Site5.

Lo siguiente en resolver era como rayos iba a correr mi aplicación en el hosting una vez que estuviera terminada, por lo que me di a la tarea de investigar y comparto con ustedes la siguiente receta.

Los siguientes pasos son para correr una app de Rails 2.3.5 en Site5. (Hace unos dias corrimos una en Rails 3.0.0.beta4, pero el procedimiento es ligeramente distinto debido a la participación de Bundler)

1.- Tenemos nuestro proyecto local llamado miapp

2.- Revisamos localmente que gemas tenemos instaladas en nuestro proyecto:

   $ cd miapp
   $ rake gems

Esto nos mostrara las gemas y sus dependencias

3.- Desempaquetamos las gemas necesarias dentro del folder vendor de nuestra aplicación:

   $ rake gems:unpack:dependencies	

4.- En nuestro CPANEL de Site5 creamos una base de datos y un usuario con todos los permisos sobre ella.

5.- Modificamos la conexión de nuestro config/database.yml a MySQL:

   production:
      adapter: mysql
      encoding: utf8
      reconnect: false
      database: mibasededatos #nombre de nuestra base de datos
      pool: 5
      username: miusuario #nuestro usuario de base de datos
      password: mipassword #nuestro password de usuario
      host: localhost	

6.- En config/enviroment.rb agregamos el ambiente de producción:

   ENV['RAILS_ENV'] = "production"
   RAILS_ENV = ENV['RAILS_ENV']

7.- Nos conectamos via SSH a nuestro hosting en Site5:

   $ ssh user@domain.com

En este paso es el usuario del hosting arroba el dominio, y el password, será el mismo que el del hosting.

8.- Una vez que accesamos al hosting via SSH, creamos en la raíz un folder llamado apps, que es donde estará nuestra aplicación e ingresamos a el.

    $ sudo mkdir apps
    $ cd apps

9.- Dentro de apps subimos completo nuestro proyecto local miapp via FTP.

10.- En la terminal vía SSH removemos el folder public_html y redireccionamos el public de nuestro miapp virtualmente:

   $ rm public_html
   $ ls
   $ ln -s /home/username/apps/miapp/public public_html
   $ ls -l

Donde username es el usuario que utilizamos en nuestro acceso a SSH.

11.- ingresamos a miapp, al folder public para remover el index.html (paso opcional, se puede hacer localmente o vía FTP)

   $ cd apps/miapp
   $ ls
   $ cd public
   $ ls
   $ rm index.html
   $ cd ..

12.- nos posicionamos dentro del folder apps donde se encuentra miapp y asignamos permisos:

   $ chmod -R 755 miapp/*

13.- Creamos un .htaccess para nuestra aplicación dentro de public (en mi caso utilice el editor nano):

   $ nano miapp/public/.htaccess

Dentro del nuevo archivo escribiremos las siguientes líneas y posteriormente lo salvamos:

   RailsEnv production
   PassengerEnabled on
   PassengerAppRoot /home/username/apps/miapp

Lo que hicimos en este fue declarar nuevamente el ambiente de production, habilitar passenger y fijar la ruta de la app, donde username es el usuario que mencione en el paso 10.

14.- En la terminal realizamos dentro de nuestra app un rake para el esquema de la base de datos.

   $ cd app
   $ rake db:schema:load

15.- hacemos refresh en nuestro browser para ver nuestra app funcionando online.

16.- Cada que se realice un cambio en el código, es necesario reiniciar passenger, para esta tarea con la terminal hacemos lo siguiente:

   $ cd apps/miapp
   $ touch tmp/restart.txt

si hacemos un $ cd tmp y un ls para mostrar los archivos, debe aparecernos un restart.txt dentro. Este paso es necesario cada vez que se modifique algo dentro de nuestra aplicación.

No es una receta definitiva, existen algunas variantes en los pasos, sin embargo lo comparto porque es la forma como me ha funcionado.

Post relacionados

Aporta tu comentario

Tu Email no sera publicado.

Opcional.