eRuby: Guía de Configuración de Ruby para Apache

9 08 2007

Aparte del método de instalación, descrito en el artículo Ruby on Rails: Configuración y Primeros Pasos, he investigado más a profundidad otros métodos. Me ha sorprendido que existe bastantes formas para lograr el soporte de Ruby sobre Apache. En lo particular, yo recomendaría este método al anterior descrito. No pretendo quitarle mérito a mi anterior artículo, solamente me refiero a que este era el que realmente estaba buscando y sobre todo, me permite combinar más tecnologías soportadas dentro del Servidor. En un artículo posterior, describiré más a detalle el por que desear tener más de un lenguaje de scripting disponible dentro del servidor. Bueno, despues de esta introducción, iniciemos con este tutorial.

Para iniciar con este manual, baldrá tener instalado el intérprete de Ruby. Los pasos de configuración están descritos en el artículo Ruby on Rails: Bienvenido a Bordo. En sintésis, debemos instalar Ruby y Ruby on Rails (si queremos trabajar con este framework).

Leyendo el manual incluido dentro de la distribución de Ruby para Windows, me tope con la noticia de que existe otra tecnología para configurar Ruby dentro de Apache. Dicho proyecto se llama eRuby y existe para muchos sistemas, incluyendo Windows. Este, es un binario que al igual que el intérprete de PHP, se agrega a la configuración de Apache.

Paso 1. Descargamos el archivo compilado de eRuby 1.0.5, y extraemos el contenido del archivo dentro del directorio de instalación de Ruby. Los directorios que debemos extraer están dentro de usr/local.

Paso 2. Abrimos nuestro archivo de configuración de Apache (httpd.conf) y agregamos las siguientes líneas:

# Revisar que la directiva AllowOverride este en All
# (solo para un servidor de pruebas)

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

AddType application/x-httpd-eruby .rhtml
AddType application/x-httpd-cgi .rhtml

# Indicamos la ruta de acceso de eRuby
Action application/x-httpd-eruby "C:/apache/ruby/bin/eruby.exe"

Paso 3. Definimos un archivo de configuración .htaccess para nuestro servidor, o a un directorio en específico y agregamos las siguientes directivas. Posteriormente, creamos un archivo de registro (ej. eruby.reg). Este archivo nos permitirá registrar el binario eruby.exe para que no sea necesario definirlo en cada archivo que creemos (una ventaja muy importante en materio de portabilidad). Para poder configurar más de un tipo de extensión para los archivos eRuby, debemos indicarlo para el archivo de registro en el segundo directorio ([HKEY_CLASSES_ROOT]\.extension\Shell\ExecCGI\Command).

# Dentro del .htaccess

Options +ExecCGI
ScriptInterpreterSource registry

# El archivo (.reg)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.rhtml\Shell\ExecCGI\Command]
@="C:\\apache\\ruby\\bin\\eruby.exe"

Paso 4. Reiniciemos nuestro servidor, creemos un nuevo archivo .rhtml y ejecutemoslo desde nuestro navegador.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
<html xmlns = "http://www.w3.org/1999/xhtml"&gt;
    <head>
        <title>Environment Variables</title>
    </head>
    <body>

        <h1>Environment Variables</h1>

        <table>
            <% ENV.keys.sort.each do |key| %>
                <tr>
                    <td style = "font-weight:bold;"><%= key %></td>
                    <td><%= ENV[key] %></td>
                </tr>
            <% end %>
        </table>

    </body>
</html>

Deberemos de ver la página con la lista de variables de entorno. Esta lista es muy parecida a la generada por PHP.

Paso 5. . Ahora, procederemos a configurar la conexión a MySQL. Realmente, no se que SGBD, es la preferida para trabajar con Ruby, pero por el momento con configurar MySQL para Ruby, bastará. Para instalar MySQL procedemos a descargarnos el paquete con el módulo desde el stio de VandomBurg.net; el autor del artículo del que me base para describir este paso. Una vez abajo, extraemos el archivo mysql.so y lo copiamos a la carpeta:

%RUBYARCHDIR%\lib\ruby\site_ruby\1.8\i386-msvcrt\mysql.so

Para terminar, copiamos la libreria DLL de MySQL (libmySQL.dll), de la carpeta bin del directorio de instalación de MySQL al directorio bin de Ruby (en mi caso: c:\apache\ruby\bin). Y con esto hemos terminado la instalación del soporte para MySQL dentro de Ruby.

<%
require 'mysql'
puts Mysql::VERSION
%>

Para corroborar que todo está funcionando correctamente, podemos crear otro archivo, y pegamos el anterior código. Si todo está funcionando correctamente, la salida debera ser: 20703 ú otro número en su defecto.

Artículos Relacionados