Dies Irae

Instalar Ruby en Apache bajo Windows XP

rails.pngPor fin conseguí instalar Ruby on Rails sobre Apache en un WinXP. Probé varias configuraciones y por fin di con una válida. Anoto aquí los pasos que seguí por si a alguien le sirven de ayuda. Las indicaciones asumen los casos de instalar en máquinas con y sin conexión a internet.

  • Descargar Apache 2.0.55. Hay problemas de compatibilidad con versiones superiores debido a los módulos que necesitamos así que nos bajamos esa versión en concreto. El instalador es apache_2.0.55-win32-x86-no_ssl.exe o algo así.
  • Descargar Ruby. Se puede bajar la última versión, en el momento de escribir ésto la 1.8.6-25.
  • Descargar los gem (si la máquina final no tiene conexión).
    • Rake (formato gem)
  • Instalar Apache. En este ejemplo se supone que el servidor es localhost. Si todo va bien al terminar arrancará y aparecerá el icono del Monitor de Apache en la barra de tareas.

123066818_0414b9f5a4.jpg

123066820_d7691ff8ff_o.png

  • Instalar Ruby. Anota la ruta donde se instala para poder usarla luego.

123070200_8d358e4e59.jpg

  • Instalar Rubygems. Si no hay conexión, descomprimir rubygems, abrir una consola DOS y, desde el directorio donde están los archivos descomprimidos ejecutar ruby setup.rb
  • Instalar los gems. Sin conexión, ir a la carpeta donde están los gems e instalarlos en el mismo orden que se indica aquí con gem install nombre_gem (gem install actionpack). Con conexión ejecutar gems update. En ambos casos, para rails ejecuta gem install rails –include-dependencies.

123070199_590ce12d15.jpg

  • Instalar SCGI. gem install scgi_rails-*.gem, donde * es el número de versión.
  • Instalar el módulo SCGI de Apache. Descomprímelo y copia el archivo mod_scgi en la carpeta de módulos de Apache. Si has usado la ruta por defecto será algo como C:\Archivos de Programa\Apache Group\Apache\modules\.
  • Creamos una aplicación Rails. Aquí la denomino test. Ejecuta rails test desde una consola DOS.
  • Entramos en la carpeta de la aplicación y ejecutamos scgi_ctrl config -S y scgi_service. El primer comando nos solicita una clave de acceso. Se usa para impedir que nadie pueda conectarse al SCGI (puerto 8999) sin permiso y destrozar nuestra aplicación. El segundo comando inicia el intérprete de SCGI. Es necesario usarlo para utilizar Ruby y siempre debe ejecutarse dentro de la carpeta de la aplicación. Si arranca y no aparece ningún mensaje es que todo va bien. Cerrando su ventana se detiene.
  • Configurar Apache. Editamos el archivo httpd.conf (accesible desde un acceso directo del grupo de programas Apache).

123066821_41e9a610a3.jpg

  • Sección de carga de módulos (LoadModule). Añadir

LoadModule scgi_module modules/mod_scgi.so

y descomentar la línea

LoadModule rewrite_module modules/mod_rewrite.so

  • Modificar DocumentRoot con la ruta de tu aplicación:

DocumentRoot “C:/test/public”

Observa el sentido de las barras de separación.

  • Modificar Directory:

<Directory “C:/test/public”>

  • Configurar el host. Al final de httpd.conf añadir

<VirtualHost *>

ServerName test

SCGIMount / 127.0.0.1:9999

DocumentRoot “c:/test/public”

<Directory “c:/test/public/”>

Options +FollowSymLinks

Order allow,deny

allow from all

</Directory>

AddDefaultCharset utf-8

#ErrorDocument 500 /500.html

#ErrorDocument 404 /404.html

<LocationMatch ^/(images|javascript|javascripts|stylesheets|[^/]+\.[^/]+$)>

SCGIHandler Off

</LocationMatch>

<LocationMatch “^/$”>

SCGIHandler Off

</LocationMatch>

</VirtualHost>

  • Guardar httpd.conf y reiniciar Apache desde el Monitor.
  • Modificar el fichero HOSTS de Windows. Editar C:\Windows\System32\Drivers\Etc\Hosts y añadir 127.0.0.1 test.

Listo.

Abre el navegador y prueba http://test/. Debe aparecer la página de bienvenida de Ruby on Rails. Clickamos en el enlace About you application’s environment y esperamos, puede tardar un poco. Si todo va bien aparecerá la lista de configuración sobre fondo amarillo, si algo falla aparecerá un mensaje de error. En este caso prueba a reiniciar.

123070203_a48b867efd.jpg

Y eso es todo. Llegados a este punto Apache puede correr aplicaciones Ruby. Aún así en mi caso algunos puntos me fallan:

  • No me aparece la lista de configuración de la pantalla de bienvenida. Ni algún error. Simplemente no aparece nada. Por lo que he podido averiguar parece debido a un error en la configuración del enlace javascript y no afecta al comportamiento del interpréte, por tanto la aplicación se ejecuta sin problemas. Usando WebRick si aparece.
  • Algún enlace de mi programa tampoco funciona (página no encontrada), aunque creo que es debido a un error mío. Con WebRick si funciona.
  • Antes de probar con este método probé con FastCGI y Apache no me cargaba el módulo, fallando al arrancar. En cambio, usando FastCGI con mod_scgi lo carga sin problemas.

Si alguien sabe el porqué de alguno de estos puntos le agradecería me lo explicara.

Imágenes: Wolf Zen. RubyOnRails.

Fuentes:
Instalar Ruby, Rails, Apache2 y SCGI en Windows. Wolf Zen.
Instalación de Ruby on Rails. Argentina On Rails.
cmdparse: HomePage
Curso Ruby con Ruby on Rails. McWiki.
Ruby on Rails
SCGI Ruby on Rails Runner
Fast CGI and Apache2 for Windows XP in Ruby on Rails
Buscador de Ruby

Anuncios

5 abril 2007 - Posted by | Informática

3 comentarios »

  1. Segui las instrucciones para instalar rails sin internet, instale las versiones especificadas de los paquetes, pero al querer instalar actionwebservice me pide una version mas nueva del activesupport que esta especificado

    Comentario por Loren | 29 octubre 2007 | Responder

  2. Segui todos los pasos, pero al ejecutar el “test” me pide una contraseña para el usuario “Invitado” y no acepta ninguna.

    Comentario por Arthur | 10 febrero 2009 | Responder

  3. Me parece que falta algo para que funcione tus pasos

    Comentario por Harold | 18 noviembre 2009 | Responder


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: