07 junio 2005

ASP en Apache.

Muchas veces en el proceso de migración de Windows a Linux, no existen vías fáciles y económcas de mover nuestras aplicaciones con tanto esfuerzo desarrolladas en Windows de una manera rápida e indolora.

Especial atención merecen los websites que se desarrollaron sobre ASP (Active Server Pages), tecnología propietaria de Microsoft que fue introducida en 1996, como una forma de volver "fácil" el desarrollo de web sites dinámicos. El problema es que esta facilidad tenía un costo, el cuál es quedarce atrapado con nuestra aplicación en una tecnología propietaria.

Si se compara ASP con otras alternativas de desarrollo de páginas web dinámicas de aquellos años, como eran CGI escritos en C, C++ o perl, pues resultaba atractiva para aquellos que querían volver dinámica a su web de una manera fácil. Es así como comienza a volverse popular esta tecnología, apoyada además por todo el aparato de marketing de Microsoft.

Lamentablemente esta tecnología proviene de una sola fuente y esta cerrada. Además para complicar las cosas Microsoft tomo la decisión de moverse en otra dirección y crear un nuevo estándar, algo muy común en la política de la compañía. Ahora tenemos ASP.NET, el cual no es 100% compatible con ASP, y ASP es ahora un producto obsoleto para Microsoft.

Aquellos que quieren moverse en otra dirección pues al parecer no la tienen muy fácil, pueden apostar por Chili Soft ASP, el cual tiene un precio muy alto para el webmaster promedio, además no parece resolver el problema de fondo, seguimos dentro de un modelo cerrado que no nos garantiza un futuro a largo plazo. Obviamente habra quienes seguiran a Microsoft con el ASP.NET, hasta que Bill Gates descubra que no esta haciendo dinero con esa tecnología y decida retirarla del mercado para implantar un nuevo estándar por el cuál se debera pagar nuevamente, para hacer lo que ya se hacía antes.

Por supuesto tendremos a los fundamentalistas (casi talibanes), que libraran una guerra santa y tomaran 6 meses para portar completamente la aplicación a PHP, JSP o incluso perl (hay gente a la que le gusta los jeroglíficos), si no es el proceso crítico de la empresa, este tipo de demoras se pueden soportar, pero si desafortunadamente es el núcleo del negocio y en muchos casos lo es, podremos decirle adios a la empresa (o nos despiden o la quebramos).

Entonces hay que encontrar la solución sensata Apache::ASP, este es un módulo perl, que esta licenciado bajo GNU/GPL, lo cual significa que no tenemos que pagar por él y además tenemos acceso a su código fuente, lo que garantiza que podremos darle mantenimiento en el futuro así su autor deje de desarrollarlo por cualquier motivo. Este módulo que añadido a un servidor Apache que soporte mod_perl, nos permite correr aplicaciones desarrolladas en ASP en un servidor web Apache, preferentemente sobre Linux. Adicionalmente al manejo de sesiones, incluye soporte para XML, XSTL y la opción de incluir código perl dentro de nuestros ASP's.

Instalando Apache::ASP

Para poder usar Apache::ASP necesitamos:

  • Linux instalado (cualquier distro)

  • Apache (yo prefiero 1.3.XX)

  • mod_perl (la última 1.0 sería suficiente)


  • Si no tienen un Linux instalado y no sabe como hacerlo, mejor haga un alto aquí y llame a un "experto", usualmente estos suelen publicitarse y son fáciles de encontrar. Lo otro es que Ud. decida aprender por su cuenta, este proceso solo le tomara tiempo y puede encontrar toda la info necesaria para convertirse en "experto" en Internet gratis.

    Instalando Apache web server:

    Si tiene Apache instalado, entonces pasa a la siguiente sección, de lo contrario manos a la obra:

    1. Para instalar Apache se debe ser "root", entonces descargue los fuentes de Apache:

    # cd /tmp
    # wget http://apache.mirror99.com/httpd/apache_1.3.33.tar.gz


    2. Desempaquete el código fuente:

    # cd /usr/src
    # tar -zxvf /tmp/apache_1.3.33.tar.gz


    3. Configure y compile el Apache:

    # cd /apache_1.3.33
    # ./configure --prefix=/usr/local/apache --enable-module=so
    # make
    # make install


    4. Cree los siguientes liks para hacer fácil la administración del server:

    # ln -s /usr/local/apache/bin/apachectl /usr/sbin/apachectl
    # ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf


    Instalando mod_perl.

    Si tiene mod_perl instalado, entonces pasa a la siguiente sección, de lo contrario manos a la obra:

    1. Descargando el mod_perl:

    # cd /tmp
    # wget http://perl.apache.org/dist/mod_perl-1.0-current.tar.gz

    2. Desempaquetando el código fuente:

    # cd /usr/src/
    # tar -zxvf /tmp/mod_perl-1.0-current.tar.gz


    3. Configurando y compilando el mod_perl usando APXS (esto lo hicimos habilitando el DSO en Apache):

    # cd mod_per-1.29
    # perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/local/apache/bin/apxs EVERYTHING=1

    nota: Es importante que al momento que haces esta configuración, no recibas nigun mesaje de error o advertencias de que existen librerías peridas, de ser así trata de buscar información adicional en otras fuentes sobre como instalar extensiones a perl.

    # make
    # make install


    Instalando Apache::ASP

    Muy bien si ya tienes Apache y mod_perl instalados entonces instalemos el Apache::ASP.

    1. Instalando directamente desde CPAN:

    # perl -MCPAN -e shell

    cpan shell -- CPAN exploration and modules installation (v1.76)
    ReadLine support enabled

    cpan> install Bundle::Apache::ASP

    cpan> install Bundle::Apache::ASP::Extra

    cpan> exit


    Ahora ya tenemos a nuestro Apache::ASP instalado, sólo falta declarar en el archivo de configuración de Apache que los archivos con la extensiones ASP deben tratarse usando este nuevo módulo. Para ello sólo abra el archivo /etc/httpd.conf y añada las siguientes líneas:

    PerlModule Apache::ASP

    SetHandler perl-script
    PerlHandler Apache::ASP
    PerlSetVar Global .
    PerlSetVar StateDir /tmp/asp


    Ahora reinicie el Apache:

    # apachectl restart


    Ahora ya podemos usar ASP dentro de nuestro Apache.

    Como test vamos al directorio /usr/local/apache/htdocs y creamos el archivo test.asp con este contenido:

    <html>
    <body>
    <%
    response.write("<h2>You can use HTML tags to format the text!</h2>")
    %>

    <%
    response.write("<p style='color:#0000ff'>This text is styled with the style attribute!</p>")
    %>
    </body>
    </html>

    y visualizamos con nuestro browser el siguiete URL:

    http://ip.de.mi.server/test.asp

    y debemos de obtener el resultado esperado.

    Lo demás ya depende de cada uno de nosotros.

    Comments: Publicar un comentario

    << Home

    This page is powered by Blogger. Isn't yours?