JoeTip #003 - Instalando Cuba en Rackspace

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:





    ServerAdmin [email protected]
    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


Share: