Cuba, Ruby, Redis, Apache 2
Hola, este post es para quienes quieren usar CUBA framework y Ruby, Redis en su servidor hospedado en Rackspace. Yo tengo un
Centos como sistema operativo linux.
Como pueden ver yo ya he descargado las versiones que necesito para trabajar en mi carpeta source que tengo en la raíz de root, aquí les pongo el comando con las versiones correspondientes para que la instalación sea "like a boss":
$ wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p353.tar.gz
$ wget http://production.cf.rubygems.org/rubygems/rubygems-2.1.7.tgz
Lo único que no voy a instalar es Apache 2 porque ya lo tengo instalado. Pero instalar un apache o nginx es muy sencillo también.
RVM
Es bueno tener instalado RVM para poder manejar diferentes versiones de ruby en tu servidor.
Antes hay que instalar algunas dependencias.
$ yum install git-core curl gcc make libcurl4-openssl-dev libreadline-dev libxslt-dev libxml2-dev
$ curl -L get.rvm.io | bash -s stable
Con el último comando ya se instala RVM.
Instalando Ruby
Ruby es sencillo, solo tienen que descomprimir, y luego seguir esta secuencia de comandos.
Antes yo he creado una carpeta sour
$ tar -zxf ruby-2.0.0-p353.tar.gz
$ cd ruby-2.0.0-p353
$ ./configure
$ make
$ sudo make install
Instalando RubyGems
Instalar Rubygems es similar:
$ tar -zxf rubygems-2.1.7.tgz
$ cd rubygems-2.1.17
$ sudo ruby setup.rb
Luego ya podremos instalar algunas gemas importantes como:
$ gem install bundle
$ gem install rake
Instalando Passenger
$gem install passenger
$ sudo passenger-install-apache2-module
Luego en tu httpd.conf de apache incluir estas lineas
#ruby
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.27/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.27
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p353/ruby
Nota:
Verifique la versión de passenger o las rutas serán distintas.
Instalando Redis
$ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
$ yum install redis -y
Luego ya se puede aplicar
$redis start
$redis stop
Para que inicie redis al reiniciar el servidor:
$ sudo chkconfig --add redis
$ sudo chkconfig --level 345 redis on
$ service redis start
Creando una Simple aplicación Cuba
En tu Document Root crea una aplicación cuba. Para eso he creado un directorio llamado holacuba.
Al interior de holacuba tengo el archivo index.rb
require "cuba"
require "cuba/render"
Cuba.plugin Cuba::Render
Cuba.define do
on get do
on "hello" do
res.write "Hello world!"
end
on root do
res.redirect "/hello"
end
end
end
Y su archivo config.ru con este contenido:
# cat config.ru
require "./index"
run Cuba
Luego para lograr que sea accesible desde internet colocamos este virtualhost en el httpd.conf de apache:
DocumentRoot /var/www/html/holacuba/public
ServerName www.redmine.joedayz.pe
ServerAlias redmine.joedayz.pe
AllowOverride all
Options -MultiViews
NOTA: No se olvide de la carpeta public o no levantara
Reiniciamos el apache y vamos a redmine.joedayz.pe y ...
Espero les sirva, porque busque mucha información por la red y sobre Cuba en Rackspace casi nada.
Joe