Este artículo explica paso a paso cómo instalar y configurar Internet Information Server (IIS) sobre Windows XP para hacer que nuestro equipo sea un Servidor Web. Explicamos algunas de las opciones de configuación más importantes (errores, directorio, log de visitas, etc).

Cómo hacer de un PC con Windows XP e IIS un servidor web

 

 

Cómo hacer de un PC con Windows XP e IIS un servidor web y cómo acceder a Oracle con ASP

Este artículo pretende explicar paso a paso cómo instalar y configurar Internet Information Server (IIS) sobre Windows XP para hacer que nuestro equipo sea un Servidor Web (tanto para la LAN / Intranet como para Internet). También explicaremos cómo acceder a tablas de Oracle con ASP, ODBC y IIS.

Los requisitos para este artículo son: disponer de un equipo con Windows XP (sirve para cualquier otra versión de Windows que lleve IIS, Windows 2000, Windows 2003, Windows 9x). Si no tenemos instalado IIS necesitaremos el CD de instalación de Windows XP, en caso contrario no será necesario. Para la conexión a Oracle mediante ASP necesitaremos un servidor de Oracle o bien instalar Oracle en el propio equipo que hará de Servidor de Internet. Si no tenéis Oracle instalado os recomendamos (al menos para probar) que instaléis Oracle 10g Express Edition XE que es una versión gratuita realizada por Oracle para pruebas y testeos, podéis ver un manual de cómo instalar Oracle 10g Express Edition XE aquí.

En primer lugar procederemos a instalar Internet Information Server (si no lo tenemos instalado), para ello pulsaremos en el botón «Inicio» – «Configuración» – «Panel de control» – «Agregar o quitar programas» – «Agregar o quitar componentes de Windows»:

Seleccionaremos «Servicio World Wide Web» y pulsaremos «Aceptar»:

Es muy posible que pida el CD de instalación de Windows, lo introduciremos y pulsaremos «Aceptar»:

Tras la instalación de Internet Information Server (IIS) pulsaremos «Finalizar»:

Desde el botón «Inicio» – «Configuración» – «Panel de control» – «Herramientas administrativas» – «Servicios de Internet Information Server»:

Si todo ha ido bien aparecerá el Sitio Web Predeterminado iniciado y ya estará operativo el servidor web. Si se produce este error al intentar iniciar IIS:

Con el texto:
Error inesperado 0x8ffe2740.

normalmente es debido a que el puerto por defecto de IIS (el 80) está siendo utilizado por otro servidor web (Apache, Apache Tomcat, etc). En este caso será necesario cambiar el puerto utilizado por el otro servidor web o bien detener el servicio de éste. También se puede cambiar el puerto que utilizará IIS pero, en este caso, al acceder al servidor web habrá que especificar el puerto con «:», por ejemplo http://localhost:8088.

IIS habrá creado una carpeta donde se alojan los ficheros del Sitio Web Predeterminado, en:

C:/Inetpub/wwwroot

Si abrimos el navegador de Internet y en la URL escribimos «http://localhost» nos mostrará la siguiente página web:

Para cambiar cualquier opción de configuración de IIS accederemos a «Inicio» – «Configuración» – «Panel de Control» – «Herramientas administrativas» – «Servicios de Internet Information Server»:

Uno de los parámetros que es recomendable cambiar (por motivos de seguridad) es el Directorio Particular. Especifica la ruta donde se encuentran los ficheros del sitio web. La ruta por defecto es conocida por todos los hackers y, ante una intrusión, será ahí donde intenten acceder en primer lugar. Con lo cual es recomendable cambiarla. Para ello pulsaremos con el botón derecho sobre «Sitio Web predeterminado» y pulsaremos en «Propiedades», a continuación pulsaremos en la pestaña «Directorio particular» y en «Ruta de acceso local» especificaremos el directorio donde se encontrarán los ficheros de nuestro servidor Web:

Si queremos que un determinado fichero sea el que se cargue al acceder a nuestro Servidor Web como página incial deberemos agregarla en la pestaña «Documentos». Pulsaremos en el botón «Agregar»:

Introduciremos el nombre del fichero de inicio de nuestro Sitio Web:

Con el botón de la parte izquierda (el de la flecha hacia arriba) colocaremos el nombre del fichero añadido el primero de la lista:

Por último, obviamente, deberá existir este fichero «inicio.html» en nuestro Directorio Particular de IIS.

Otra opción interesante es Habilitar búfer, se encuentra en la pestaña «Directorio Particular», pulsando en el botón «Configuración» de «Configuración de la aplicación»:

Active la casilla de verificación «Habilitar búfer» para almacenar en búfer el resultado que se envía al explorador. Si se activa esta casilla de verificación, se recopilarán todos los resultados generados por una página ASP antes de enviarla al explorador. Si se desactiva, el resultado se devuelve al explorador a medida que se procesa la página. El almacenamiento en búfer del resultado permite establecer encabezados HTTP desde cualquier lugar de una secuencia de comandos ASP. Puede suplantar esta opción en una secuencia de comandos ASP mediante el método Response.Buffer.

Si está utilizando páginas ASP y quiere que al realizar algún cambio en el código de estos ficheros se actualice instantáneamente es recomendable que desmarque esta opción «Habilitar búfer». Tal vez pierda un poco de rapidez el acceso a la web pero los cambios se aplicarán al momento de cambiar el código.

En la ventana anterior también podremos configurar el tiempo de espera de sesión: cuando el estado de la sesión está habilitado, las páginas Active Server (ASP) crean una sesión para cada usuario que tiene acceso a una aplicación ASP, de forma que pueda identificarlo en las distintas páginas de la aplicación. Cuando se deshabilita el estado de sesión, ASP no realiza un seguimiento de los usuarios ni permite que las secuencias de comandos ASP almacenen información en el objeto Session o que utilicen los eventos Session_OnStart o Session_OnEnd. Una sesión termina automáticamente si el usuario no ha pedido o actualizado una página de una aplicación antes de que finalice el tiempo de espera. Para cambiar el tiempo de espera de sesión, escriba un número (en minutos) en el cuadro de texto «Tiempo de espera de sesión». Una secuencia de comandos puede finalizar explícitamente una sesión mediante el método Session.Abandon.

Otra opción interesante en la ventana de «Configuración de la aplicación» se encuentra en la pestaña Depuración y es «Enviar al cliente mensajes de error ASP detallados». Por motivos de seguridad es conveniente que marque la opción «Enviar al cliente este mensaje de error» y especifique un mensaje de error personalizado. De esta forma, ante ataques externos a nuestro sitio web que intentan provocar errores para obtener información extra que luego utilizarán para atacar al servidor, evitaremos que puedan obtener esa información.

Sólo si nuestro sitio web está en desarrollo es recomendable marcar la opción «Enviar al cliente mensajes de error ASP detallados», así como «Habilitar depuración de secuencia de comandos ASP en el servidor» y «Habilitar depuración de secuencia de comandos ASP en el cliente». De esta forma, si se produce algún error en el código ASP, obtendremos la máxima información posible:

Al producirse un error en el código ASP nos mostrará un mensaje como este (muy útil para el desarrollador):

Información técnica (para personal de soporte técnico)

  • Tipo de error:
    Error de compilación de Microsoft VBScript (0x800A0400)
    Se esperaba una instrucción
    /pruebaacceso.asp, línea 31, columna 22
    while not rstabla.eof then
    ———————^
  • Tipo de explorador:
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727)
  • Página:
    GET /pruebaacceso.asp
  • Hora:
    domingo, 24 de septiembre de 2006, 2:11:58

Si queremos que se registren las visitas a nuestro sitio web en ficheros de texto deberemos acceder a la pestaña «Sitio Web» de la ventana «Propiedades de Sitio Web predeterminado». Marcaremos la casilla de verificación «Habilitar registro», podremos especificar el formato del archivo de registro:

  • W3C: formato ASCII personalizable, seleccionado de manera predeterminada, para usar información de procesos se debe seleccionar este formato, se guardará por defecto en C:/WINDOWS/system32/LogFiles, con el nombre «exAÑOMESDIA.log». Un ejemplo de contenido de este fichero:

#Software: Microsoft Internet Information Services 5.1
#Version: 1.0
#Date: 2006-09-23 22:29:47
#Fields: date time c-ip s-port cs-method cs-uri-stem sc-status cs(User-Agent) cs(Referer)
2006-09-23 22:29:47 127.0.0.1 80 GET /iisstart.asp 302 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+InfoPath.1;
2006-09-23 22:29:47 127.0.0.1 80 GET /localstart.asp 401 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+InfoPath.1;
2006-09-23 22:29:47 127.0.0.1 80 GET /localstart.asp 200 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+InfoPath.1;
2006-09-23 22:29:47 127.0.0.1 80 GET /winXP.gif 304 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322; http://localhost/localstart.asp
2006-09-23 22:29:47 127.0.0.1 80 GET /warning.gif 304 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322; http://localhost/localstart.asp
2006-09-23 22:29:47 127.0.0.1 80 GET /web.gif 304 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322; http://localhost/localstart.asp
2006-09-23 22:29:47 127.0.0.1 80 GET /mmc.gif 304 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322; http://localhost/localstart.asp
2006-09-23 22:29:47 127.0.0.1 80 GET /help.gif 304 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322; http://localhost/localstart.asp
2006-09-23 22:29:47 127.0.0.1 80 GET /print.gif 304 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322; http://localhost/localstart.asp
2006-09-23 22:29:50 127.0.0.1 80 GET /localstart.asp 200 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+InfoPath.1;
2006-09-23 22:29:50 127.0.0.1 80 GET /warning.gif 304 MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322; http://localhost/localstart.asp

  • Microsoft IIS: formato ASCII fijo, se guardará por defecto en C:/WINDOWS/system32/LogFiles, con el nombre «inAÑOMESDIA.log». Un ejemplo de contenido de este fichero:

127.0.0.1, -, 24/09/2006, 0:37:48, W3SVC1, PCALONSO, 127.0.0.1, 0, 359, 1513, 200, 0, GET, /iisstart.asp, uc=1,
127.0.0.1, -, 24/09/2006, 0:37:48, W3SVC1, PCALONSO, 127.0.0.1, 0, 444, 140, 304, 0, GET, /pagerror.gif, -,
127.0.0.1, -, 24/09/2006, 0:37:48, W3SVC1, PCALONSO, 127.0.0.1, 15, 359, 1513, 200, 0, GET, /iisstart.asp, uc=1,
127.0.0.1, -, 24/09/2006, 0:37:48, W3SVC1, PCALONSO, 127.0.0.1, 0, 444, 140, 304, 0, GET, /pagerror.gif, -,
127.0.0.1, -, 24/09/2006, 0:37:48, W3SVC1, PCALONSO, 127.0.0.1, 0, 359, 1513, 200, 0, GET, /iisstart.asp, uc=1,
127.0.0.1, -, 24/09/2006, 0:37:48, W3SVC1, PCALONSO, 127.0.0.1, 0, 444, 140, 304, 0, GET, /pagerror.gif, -,
127.0.0.1, -, 24/09/2006, 0:37:53, W3SVC1, PCALONSO, 127.0.0.1, 0, 470, 140, 304, 0, GET, /iishelp/common/coua.css, -,
127.0.0.1, -, 24/09/2006, 0:37:57, W3SVC1, PCALONSO, 127.0.0.1, 16, 308, 477, 200, 0, GET, /iishelp/Default.htm, -,
127.0.0.1, -, 24/09/2006, 0:37:57, W3SVC1, PCALONSO, 127.0.0.1, 15, 489, 1844, 200, 0, GET, /iishelp/iis/misc/default.asp, -,
127.0.0.1, -, 24/09/2006, 0:37:57, W3SVC1, PCALONSO, 127.0.0.1, 16, 544, 1114, 200, 0, GET, /iishelp/iis/misc/navbar.asp, -,
127.0.0.1, -, 24/09/2006, 0:37:57, W3SVC1, PCALONSO, 127.0.0.1, 0, 546, 5192, 200, 0, GET, /iishelp/iis/misc/contents.asp, -,

  • NCSA: formato fijo, se guardará por defecto en C:/WINDOWS/system32/LogFiles, con el nombre «ncAÑOMESDIA.log». Un ejemplo de contenido de este fichero:

127.0.0.1 – – [24/Sep/2006:00:35:31 +0100] «GET /iisstart.asp HTTP/1.1» 302 377
127.0.0.1 – – [24/Sep/2006:00:35:31 +0100] «GET /localstart.asp HTTP/1.1» 401 5063
127.0.0.1 – PCALONSOalonso [24/Sep/2006:00:35:31 +0100] «GET /localstart.asp HTTP/1.1» 200 8367
127.0.0.1 – PCALONSOalonso [24/Sep/2006:00:35:32 +0100] «GET /winXP.gif HTTP/1.1» 304 140
127.0.0.1 – – [24/Sep/2006:00:35:32 +0100] «GET /warning.gif HTTP/1.1» 304 140
127.0.0.1 – PCALONSOalonso [24/Sep/2006:00:35:32 +0100] «GET /help.gif HTTP/1.1» 304 140
127.0.0.1 – – [24/Sep/2006:00:35:32 +0100] «GET /mmc.gif HTTP/1.1» 304 140
127.0.0.1 – PCALONSOalonso [24/Sep/2006:00:35:32 +0100] «GET /web.gif HTTP/1.1» 304 140
127.0.0.1 – – [24/Sep/2006:00:35:32 +0100] «GET /print.gif HTTP/1.1» 304 140
127.0.0.1 – PCALONSOalonso [24/Sep/2006:00:35:33 +0100] «GET /localstart.asp HTTP/1.1» 200 8367
127.0.0.1 – – [24/Sep/2006:00:35:34 +0100] «GET /winXP.gif HTTP/1.1» 304 140

  • Registro ODBC: formato fijo registrado en una base de datos (sólo disponible en Windows 2000 Server).

Pulsando en el botón «Propiedades» podremos especificar el período de tiempo para el registro (cada hora, diario, semanal, mensual, por tamaño), también podremos indicar la ubicación de estos archivos de registro de visitas:

y, sólo para el formato de registro W3C, podremos personalizar los valores que queramos guardar en el registro (fecha, hora, nombre de usuario, nombre de servicio, método, recurso visitado, bytes enviados, bytes recibidos, host, sitio de referencia, dirección IP del cliente, agente de usuario (navegador de Internet con el que ha visitado nuestro sitio web, etc):

También tendremos la posibilidad de personalizar los posibles errores que se produzcan en nuestro sitio web:

  • 400 «Bad request», fichero ubicado en C:/WINDOWS/help/iisHelp/common/400.htm.
  • 401-1 «Unauthorized – Logon failed», fichero ubicado en C:/WINDOWS/help/iisHelp/common/401-1.htm.
  • 404 «Not found», fichero ubicado en C:/WINDOWS/help/iisHelp/common/404b.htm.
  • etc.

Desde la pestaña «Errores personalizados» de la ventana «Propiedades de Sitio Web predeterminado» podremos consultar y modificar estos errores. Seleccionando el error y pulsando en el botón «Modificar propiedades»:

Podremos cambiar el tipo de mensaje (archivo, clave predeterminada, URL) y el archivo que se visualizará cuando se produzca el error:

Por supuesto existen infinidad de opciones de IIS, pero hemos intentado mencionar las más importantes.

Nota: para realizar este manual se ha utilizado IIS versión 5.1, Microsoft Windows XP, Oracle 10g Express Edition y AjpdSoft Administrador de BD.