Evitar navegación.
Principal
Consultoría y desarrollo WEB

Ruby on Rails, entorno de desarrollo (ubuntu) y producción (bluehost)

En la entrada anterior Primeros pasos con ruby on rails expliqué como instalar ROR en un Ubuntu.

Ahora, luego de haber desarrollado las primeras pantallas, tenía que realizar la instalación en el proveedor (hosting) que utilizo: Bluehost.

Bluehost provee de Ruby on Rails versión 2.1 (la más actual) y en la ventana de comandos (Shell) es posible realizar el comando
rails proyecto

Luego, creé un subdominio "proyecto" en el panel de control(Cpannel de Bluehost), y redirigí el subdominio a mi proyecto ROR:

cd ~
rm public_html/proyecto
ln -s proyecto/public public_html/proyecto

Deberemos obtener en proyecto.midominio.com la conocida página de Ruby on Rails

Ahora viene lo interesante. ¿Cómo traslado mi aplicación a Producción?
Solución: rsync
Utilizo un scrip SH para ello:

sincronizar.sh

if [ $1 == "go" ]
then
echo "sincronizando relojes pero de verdad"
rsync -azvvrC --force --delete --exclude-from=rsync_exclude.txt ./ casadeli@casadeplaya.com:/home5/casadeli/crm
else
echo "haciendo la finta que sincronizo para ver qué pasa"
rsync -azvvrC --force --delete --dry-run --exclude-from=rsync_exclude.txt ./ casadeli@casadeplaya.com:/home5/casadeli/crm
fi

Y el archivo donde defino qué no debe sincronizarse
rsync_exclude.txt

/log/*

Ahora hay que modificar los archivos

En el servidor de desarrollo (Ubuntu con Apache2) debo instalar FastCGI:

apt-get install libapache-mod-fastcgi libfcgi-ruby1.8

.htaccess debe quedar así:


# General Apache options
AddHandler fcgid-script .fcgi

AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI

# If you don't want Rails to look in certain directories,
# use the following rewrite rules so that Apache won't rewrite certain requests
#
# Example:
# RewriteCond %{REQUEST_URI} ^/notrails.*
# RewriteRule .* - [L]

# Redirect all requests not available on the filesystem to Rails
# By default the cgi dispatcher is used which is very slow
#
# For better performance replace the dispatcher with the fastcgi one
#
# Example:
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
RewriteEngine On

# If your Rails application is accessed via an Alias directive,
# then you MUST also set the RewriteBase in this htaccess file.
#
# Example:
# Alias /myrailsapp /path/to/myrailsapp/public
# RewriteBase /myrailsapp

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]

# In case Rails experiences terminal errors
# Instead of displaying this message you can supply a file here which will be rendered instead
#
# Example:
# ErrorDocument 500 /500.html

ErrorDocument 500 "Application errorRails application failed to start properly"