Mostrando entradas con la etiqueta rails. Mostrar todas las entradas
Mostrando entradas con la etiqueta rails. Mostrar todas las entradas

viernes, 20 de abril de 2012

Nginx y passenger para rails en ubuntu

La siguiente guía asume que tenemos una instalación funcional de rvm.
Instalamos passenger, con el comando:
gem install passenger

Una vez satisfechas las dependencias de las que nos ha avisado el instalador, instalamos, nginx con:
passenger-install-nginx-module
Llegados aquí, comenzará el proceso pero llegado el momento tendremos un error por no tener privilegios de instalación.

En ningún caso, intentar sudo passenger-install-nginx-module, nginx nos dará problemas, passenger también e intentar deshacerlo es muy engorroso.

La opción correcta es a través del propio rvm con el siguiente comando:            
rvmsudo passenger-install-nginx-module
             
 Si estamos en un una distribución tipo server lo mas probable es que nuestro usuario ssh, no este en la lista de sudoers. Esto es, no podemos hacer rvmsudo, ni sudo gedit, ... Si intentamos completar la instalación a través de su, no encontrará passenger, ni a rvm.

  Esto se soluciona editando como su el archivo /etc/sudoers y añadiendo la siguiente línea:
miUsuario ALL=(ALL) ALL

Ahora al hacer   rvmsudo passenger-install-nginx-module   la instalación se realiza correctamente.
Si no indicamos lo contrario durante la instalación, nginx se instala en /opt/nginx. El archivo de configuración se encuentra en /opt/nginx/conf/nginx.conf. Añadir una aplicación rails es tan simple como añadir:
Nos interesa añadir nginx como un servicio del sistema, para poder hacer llamadas del tipo
sudo service nginx start | restart | stop
Para ello creamos un archivo llamado nginx en /etc/ini.d/nginx, con el comando:
sudo nano /etc/init.d/nginx
*Sustituyase nano por el editor preferido
En este archivo pegar el siguiente script:

A continuación le damos permisos de ejecución con 
sudo chmod +x /etc/init.d/nginx
La aplicación que hayamos configurada debería estar en marcha tras hacer
sudo service nginx start     

jueves, 29 de marzo de 2012

Heroku y rails

Heroku es una plataforma que permite el despliegue de nuestra aplicación en la red.Actualmente soporta Ruby, Rails, Python y de reciente incoporación tenemos Java.

Proporciona una base de datos compartida de 5MB , que para pequeñas aplicaciones o para pruebas suele ser más que suficiente.El espacio de alojamiento una vez desplegado es de sólo lectura, por lo que si nuestra aplicación carga imágenes estas no se podrán almacenar.

Heroku usa PosgtreSQL como base de datos, detalle a tener en cuenta al desplegar una aplicación en rails.  Si lanzamos nuestra aplicación a heroku sin la gema 'pg' no funcionará. El tutorial para rails que ofrecen es bastante claro, pero el tema de la base de datos puede marearnos, porque no se deja lo bastante claro.

Para un despliegue sin incidentes raros:
  • Instalar la gema pg en nuestro equipo. Probablemente nos dará algun fallo. En ubuntu para poder instalarla basta con hacer:
sudo apt-get install postgresql-server postgresql-client
sudo apt-get install libpq-dev
  • Instalar la gema 'pg' y añadirla al gemfile
gem install pg
En el gemfile: gem 'pg'
bundle install


No deberíamos tener ningún problema, y nuestra aplicación debería ponerse en funcionamiento sin problemas.

Proyecto Autogalería
La imagen es un ejemplo de una aplicación web desplegada en heroku.

Galería: http://smooth-mist-6554.herokuapp.com/

domingo, 25 de septiembre de 2011

Recursos

    Uno de los imprescindibles, http://railscasts.com/

     Tutoriales cortos, claros y con ejemplos de código. Practicamente todo lo que uno puede necesitar al empezar con rails.
 

Rails installer



        Descubrimiento nuevo de hoy, con http://railsinstaller.org/ se puede instalar lo necesario para comenzar a funcionar en rails sin complicaciones aparentes. Lo he probado y de momento va bien, habrá que ver cuando necesite alguna gema con dependencias, pero es una buena manera de tener un entorno rails en windows funcionando en muy poco tiempo.