Como instalar Ruby on Rails en un Linux CentOS Virtual Dedicated Server de GoDaddy

Julio 15th, 2008  |  Published in Ruby on Rails  |  2 Comments

El propósito de esta guia es mostrar como se puede instalar Ruby on Rails en CentOS con Apache2 funcionando como proxy para lighttpd. La guia original fue obtenida de aqui, estos pasos son los que a mi me funcionaron. Esta guia puede contener errores y no garantiza que funcionará para alguien mas.

Conectandome al Virtual Dedicated Server via SSH como root, estos fueron los comandos:

yum update
yum install ruby ruby-devel ruby-libs ruby-irb ruby-rdoc ruby-mysql
yum install lighttpd-fastcgi lighttpd
cd /usr/local/src
wget http://rubyforge.org/frs/download.php/17190/rubygems-0.9.2.tgz
tar -xvzf rubygems-0.9.2.tgz
cd rubygems-0.9.2
ruby setup.rb
cd ..
wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
tar -xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make
make install
cd..
wget http://sugi.nemui.org/pub/ruby/fcgi/ruby-fcgi-0.8.6.tar.gz
tar -zxvf ruby-fcgi-0.8.6.tar.gz
cd ruby-fcgi-0.8.6
ruby install.rb config
ruby install.rb setup
ruby install.rb install
cd ..
gem install rails --include-dependencies
gem update --system

NOTA: Para este ejemplo, vamos a suponer, que yo tengo registrado un dominio.com, configurado normalmente en Go Daddy con nombre de usuario dominio, teniendo el directorio en /home/dominio/public_html y quiero poner mi aplicación en ruby.dominio.com. No me voy a meter en los detalles de como crear un subdominio en Go Daddy porque esta fuera de tema, para este ejemplo, el directorio por default del subdominio vendria siendo /home/dominio/ruby, la guia también puede ser adaptada para un dominio sin subdominio, solo hay que cambiar los directorios.

Con esta suposición, vamos a jugar un poco con los directorios para acomodar la aplicación de esta forma (reemplaza los nombres de los directorios por los tuyos):

cd /home/dominio/
rm -Rf ruby
rails testapp
chmod 777 testapp/log
chmod 777 testapp/tmp
chown -R dominio:dominio testapp
su dominio
ln -s /home/dominio/testapp/public ruby
exit

Después, hay que modificar los archivos de configuración del Apache2 y lighttpd.

Dentro de la configuración del Apache2 en /etc/httpd/conf/httpd.conf al final, hay que agregar (NOTA: Si el subdominio fue agregado con Simple Control Panel, hay que modificar el archivo /etc/httpd/conf.d/turbopanel.conf en vez de agregar al final de httpd.conf):

<VirtualHost *:80>
ServerName ruby.dominio.com
ProxyRequests Off
ProxyPass / http://localhost:81/
ProxyPassReverse / http://localhost:81/
ProxyPreserveHost on
</VirtualHost>

Ahora para lightttpd en /etc/lighttpd/lighttpd.conf tenemos:

server.modules              = (
"mod_rewrite",
"mod_access",
"mod_fastcgi",
"mod_cgi",
"mod_accesslog" )
 
server.document-root        = "/home/dominio/testapp/public/"
server.errorlog             = "/var/log/lighttpd/error.log"
index-file.names            = ( "index.php", "index.html",
"index.htm", "default.htm" )
mimetype.assign             = (
".rpm"          =>      "application/x-rpm",
".pdf"          =>      "application/pdf",
".sig"          =>      "application/pgp-signature",
".spl"          =>      "application/futuresplash",
".class"        =>      "application/octet-stream",
".ps"           =>      "application/postscript",
".torrent"      =>      "application/x-bittorrent",
".dvi"          =>      "application/x-dvi",
".gz"           =>      "application/x-gzip",
".pac"          =>      "application/x-ns-proxy-autoconfig",
".swf"          =>      "application/x-shockwave-flash",
".tar.gz"       =>      "application/x-tgz",
".tgz"          =>      "application/x-tgz",
".tar"          =>      "application/x-tar",
".zip"          =>      "application/zip",
".mp3"          =>      "audio/mpeg",
".m3u"          =>      "audio/x-mpegurl",
".wma"          =>      "audio/x-ms-wma",
".wax"          =>      "audio/x-ms-wax",
".ogg"          =>      "application/ogg",
".wav"          =>      "audio/x-wav",
".gif"          =>      "image/gif",
".jpg"          =>      "image/jpeg",
".jpeg"         =>      "image/jpeg",
".png"          =>      "image/png",
".xbm"          =>      "image/x-xbitmap",
".xpm"          =>      "image/x-xpixmap",
".xwd"          =>      "image/x-xwindowdump",
".css"          =>      "text/css",
".html"         =>      "text/html",
".htm"          =>      "text/html",
".js"           =>      "text/javascript",
".asc"          =>      "text/plain",
".c"            =>      "text/plain",
".cpp"          =>      "text/plain",
".log"          =>      "text/plain",
".conf"         =>      "text/plain",
".text"         =>      "text/plain",
".txt"          =>      "text/plain",
".dtd"          =>      "text/xml",
".xml"          =>      "text/xml",
".mpeg"         =>      "video/mpeg",
".mpg"          =>      "video/mpeg",
".mov"          =>      "video/quicktime",
".qt"           =>      "video/quicktime",
".avi"          =>      "video/x-msvideo",
".asf"          =>      "video/x-ms-asf",
".asx"          =>      "video/x-ms-asf",
".wmv"          =>      "video/x-ms-wmv",
".bz2"          =>      "application/x-bzip",
".tbz"          =>      "application/x-bzip-compressed-tar",
".tar.bz2"      =>      "application/x-bzip-compressed-tar",
""              =>      "application/octet-stream",
)
accesslog.filename          = "/var/log/lighttpd/access.log"
url.access-deny             = ( "~", ".inc" )
 
$HTTP["url"] =~ "\.pdf$" {
server.range-requests = "disable"
}
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
server.port                = 81
server.bind = "127.0.0.1"
server.error-handler-404 = "/dispatch.fcgi"
server.pid-file            = "/var/run/lighttpd.pid"
fastcgi.server = (
".fcgi" => (
"rails" => (
"socket" => "/tmp/lighttpd-fcgi.socket",
"bin-path" =>
"/home/dominio/testapp/public/dispatch.fcgi",
"bin-environment" => ( "RAILS_ENV" => "production" ),
"min-procs" => 2,
"max-procs" => 2
)
)
)
server.indexfiles = (
"dispatch.fcgi",
"index.php",
"index.html",
"index.htm",
"default.htm"
)

Ahora, solo hay que reiniciar los servers:

/etc/init.d/httpd restart
/etc/init.d/lighttpd restart

Con esto tenemos un ambiente ruby en http://ruby.dominio.com/ con los archivos fuente en /home/dominio/testapp

Compartir:
  • Print this article!
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • MySpace
  • Netvibes
  • Turn this article into a PDF!
  • Reddit
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

Responses

  1. CAMERON says:

    Julio 21st, 2010 at 9:25 am (#)


    MedicamentSpot.com. Canadian Health&Care.Best quality drugs.Special Internet Prices.No prescription online pharmacy. No prescription drugs. Buy pills online

    Buy:100% Pure Okinawan Coral Calcium.Accutane.Zyban.Prevacid.Valtrex.Prednisolone.Zovirax.Nexium.Actos.Petcam (Metacam) Oral Suspension.Arimidex.Lumigan.Human Growth Hormone.Retin-A.Mega Hoodia.Synthroid….

  2. Lights says:

    Agosto 30th, 2010 at 12:45 am (#)

    Light http://tartscru.AUTOTECHGUIDE.INFO/tag/removal+Lights+Light/ : Light…

    Light…

Leave a Response

You must be logged in to post a comment.