OBJETIVO
Instalar un parser de logs de servidor web IIS 7.5 (sobre Windows Server 2008 R2), para graficar las estadisticas de trafico web de cada uno de los websites.
REQUISITOS
Al menos deben reunirse los siguientes.
- Servidor con sistema operativo Windows Server 2008 R2 (cualquier edicion) instalado
- Rol de Web Server (IIS)
- Rol de Application Development (ASPNET, CGI, ISAPI…)
- Rol de Management Tools (IIS Management Console)
- Componente Activestate ActivePERL
- Software awstats
IMPLEMENTACION
Asumimos que se ha instalado el sistema operativo, actualizado e instalado los roles necesarios para que actue como servidor web.
Awstats es un software (open source), que actua como interprete/parser de estadisticas con diferentes formatos/origenes de servicios de smtp/web o similares. Esta desarrollado en lenguaje PERL y se puede obtener por descarga directa desde la web del desarrollador (http://www.awstats.org/).
Como prerrequisito en nuestro caso, ya que necesitamos ejecutar este componente en version 32 bits (igual que en el caso de otros componentes adicionales que instalaremos), hay que modificar el POOL de cada aplicacion que lo utilice para que trabaje en modo 32 bits.
1- Descarga e instalación de Activestate ActivePERL
De forma nativa, IIS es un servidor web capaz de ejecutar codigo de diferentes tecnologias, que combinado con los roles y caracteristicas copmplementarias que puede aportar la instalacion del sistema operativo se puede extender (HTML, JS, ASP, ASPNET…).
Para utilizar el parser AWSTATS que esta basado en PERL en nuestro servidor web IIS, necesitamos que sea capaz de ejecutar adicionalmente codigo de PERL.
Para ello descargaremos la última versión “Community” de Activestate ActivePERL. En el momento de escribir este post, hemos descargado la version: ActivePerl 5.16.3 (32 bits). Podemos descargar el binario o bien descomprimir en una carpeta del sistema.
En nuestro caso, ejecutamos el binario ejecutable (formato .msi):
IMPORTANTE:
Esta es la ultima version que permite utilizar todos los componentes de PERL de la version community (FREE) en servidores de produccion. A partir de esta version se solicita la descarga de las versiones Business.
El objetivo de la integracion con IIS la resume esta tabla:
Lo recomendable es que se despliegue en la ruta c:\Perl
Tras la instalacion, vemos la variable de entorno PATH modificada:
$PATH = C:\Perl\site\bin;C:\Perl\bin;
2- Configuración IIS para la ejecucion de PERL
Accedemos a la consola de IIS y seleccionamos en el panel de la izquierda el servidor si queremos que se aplique globalmente o bien el website sobre el que queremos ejecutar scripts basados en PERL con este componente.
Opción 1: PERL como modulo ISAPI
Accedemos a la seccion de Handler Mappings y añadimos un nuevo “Module Mapping” para cada una de las extensiones deseadas (en este caso: .pl, .plx, .plex, .aspl):
Tras configurar el Mapping, restringiremos los verbos que seran aceptados por el servidor al utilizarlo.
Para ello, pinchamos en “Request Restrictions” y configuramos unicamente los siguientes:
Tras esto, aceptaremos la advertencia que permitira habilitar la ejecucion de este tipo de handler.
Por ultimo veremos en el listado el componente habilitado con las opciones definidas:
Opción 2: PERL como CGI
La otra opción, una vez instalado el software, es configurarlo como CGI.
Accedemos a la seccion de Handler Mappings y añadimos un nuevo “Script Map” para cada una de las extensiones deseadas (en este caso: .pl, .plx, .plex, .aspl), quedando asi:
Tras configurar el Script Map, restringiremos los verbos que seran aceptados por el servidor al utilizarlo.
Para ello, pinchamos en “Request Restrictions” y configuramos unicamente: HEAD, GET, POST y aceptamos en la ventana de dialogo.
Sea cual sea la opcion elegida, necesitaremos un reinicio de IIS para aplicar los cambios introducidos:
Y con esto solo nos falta colgar una pagina de prueba para validar que el interprete de PERL es plenamente funcional.
Fuentes de información consultadas:
- http://blogs.iis.net/wadeh/archive/2009/04/13/running-perl-on-iis-7.aspx
- http://www.howtogeek.com/50479/how-to-install-perl-on-iis-7-for-windows-server-2008/