SI5 - Windows 2003 : serveur WEB IIS6.0

TP 09 - mardi 27 mars et jeudi 29 mars 2012

Objectifs

  • Découvrir comment configurer un serveur WEB IIS 6.0 : répertoire de base, document par défaut, répertoire virtuel
  • Apprendre à installer un nouveau site WEB
  • Installer ASP pour des pages Web dynamiques
  • Installer PHP

Éléments de configuration prérequis

  • nous utiliserons le serveur srv2003PN et un client XP installés lors des TP précédents
  • l'adresse IP du serveur est 192.168.0.1.
  • les 2 machines sont en réseau local interne, le serveur fournissant une IP au client de manière dynamique. Sur le serveur, une seconde carte en NAT et qui obtient une IP via DHCP permet un accès à Internet.

Nous allons installer IIS et créer une configuration minimale composée d'un site Web par défaut en mode hautement sécurisé et limité à du contenu statique (si cette procédure n'a pas été déjà réalisée).

  • Lancez le programme d'installation dans le menu Démarrer/Panneau de configuration/Ajout-suppression de programmes puis Ajouter ou supprimer des composants Windows
  • Cliquez sur Serveur d'applications puis sur Détails …
  • Cliquez sur Services IIS puis sur Détails …
  • Cliquez sur Service World Wide Web puis sur Détails …

  • Cochez Service World Wide Web puis validez toutes les options successives pour lancer l'installation.

On vérifie que notre installation s'est déroulée correctement :

  • Depuis votre client XP, lancez un navigateur internet et tapez l’adresse IP du serveur dans l’URL http://192.168.0.1
  • Un message affiche « en chantier », vous invitant à réessayer d’accéder à ce site ultérieurement. Cela démontre que le service Web est actif puisque le serveur Web vous renvoie une page HTML !

Grâce au Gestionnaire des services Internet (IIS), interface graphique, on configure les fonctionnalités de fiabilité, de performances et de sécurité d'IIS. Il est possible d’ajouter ou supprimer des sites ; de démarrer ou arrêter des sites ; sauvegarder et restaurer des configurations de serveur ; ….

  • Dans le menu Démarrer sur le serveur, pointez sur Outils d'administration, puis cliquez sur Gestionnaire des services Internet (IIS).
  • Cliquez avec le bouton droit sur Site Web par défaut, puis cliquez sur Propriétés.
  • Vérifiez dans l’onglet Site Web que le serveur écoute bien les demandes des clients sur le port TCP 80

  • Choisir l’onglet Répertoire de base pour vérifier qu’il s’agit du répertoire c:\Inetpub\wwwroot

Chaque site Web doit avoir un répertoire de base (racine). On peut modifier le répertoire de base d'un site Web mais attention à penser dans ce cas à redémarrer le service. Les informations sont stockées dans un fichier nommé MetaBase.xml dans le répertoire C:\windows\System32\Inetsrv).

  • Dans l’onglet Documents vous pouvez voir la liste des documents que le serveur renvoie à défaut de demande d'une page précise. Le fichier iisstart.htm est la page que vous venez de visualiser.

NB : Si vous insérez une virgule dans le nom d'un document par défaut, IIS la considère comme un séparateur distinguant les noms de deux documents par défaut.

Vous allez maintenant créer dans le répertoire de base du serveur Web une page d’accueil personnalisée baptisée index.htm .

  • Saisir dans ce fichier le code suivant :
<html>
<head>
<title> BIENVENUE !</title>
</head>
<body>
<h1>Vous êtes sur la page d’accueil du site Web par défaut ...</h1>
</body>
</html>
  • Depuis votre client XP, dans le navigateur internet tapez l’adresse IP du serveur http://192.168.0.1
  • Votre page par défaut personnelle (index.htm) doit maintenant s’afficher

Utilisation d’un répertoire virtuel

Un répertoire virtuel est un alias, nom qui représente soit un répertoire physique sur le disque dur du serveur situé en dehors du répertoire de base, soit un répertoire situé sur un autre ordinateur de manière à pouvoir inclure ces fichiers dans votre site Web.

Un alias étant généralement plus court que le chemin d'accès du répertoire physique, il est plus pratique à saisir pour les utilisateurs. Un alias est plus sûr. En effet, les utilisateurs ne savent pas où vos fichiers sont stockés physiquement sur le serveur et ne peuvent donc pas utiliser cette information pour les modifier. Les alias vous permettent de déplacer plus facilement des répertoires dans votre site. Plutôt que de modifier l'URL du répertoire, vous modifiez le mappage entre l'alias et l'emplacement physique du répertoire. Pour utiliser un répertoire situé sur un autre ordinateur, vous devez spécifier le nom UNC (Universal Naming Convention) du répertoire et fournir un nom d'utilisateur et un mot de passe qui seront utilisés pour les droits d'accès.

Nous allons créer un répertoire virtuel pour pointer vers les pages spécifiques aux comptables qui sont physiquement enregistrées dans le répertoire Données Comptables\web sur le disque E.

  • Au préalable, copier votre fichier index.htm vers le répertoire E:\Données Comptables\web
  • L'utilisateur IUSR_SRV2003PN doit être autorisé en lecture et exécution, affichage et lecture (clic droit sur le répertoire pour accéder aux options partage et sécurité puis onglet sécurité)
  • Modifier le message contenu dans le corps de cette page comme ci-dessous :
	<h1>Vous êtes sur la page d’accueil des comptables ...</h1>
  • Enregistrez le fichier puis fermez le.
  • Dans le menu Démarrer sur le serveur, pointez sur Outils d'administration, puis cliquez sur Gestionnaire des services Internet (IIS).
  • Cliquez avec le bouton droit sur Site Web par défaut, puis choisissez Nouveau/Répertoire virtuel ….
  • Lancez l’assistant et indiquez compta comme nom d’alias, puis Suivant
  • Indiquez le chemin d’accès en cliquant sur Parcourir … puis en sélectionnant le répertoire E:\Données Comptables\web
  • Conservez les autorisations d’accès au répertoire virtuel proposées par défaut et cliquez sur Suivant pour terminez la procédure
  • A partir du poste client XP, demander l’affichage de la page http:/192.168.0.1/compta

Installation d’un nouveau site Web

Que votre site soit placé sur un réseau intranet ou sur Internet, les principes de fourniture de contenu sont identiques. Vous placez vos fichiers Web dans des répertoires sur votre serveur de sorte que les utilisateurs puissent établir une connexion HTTP et afficher vos fichiers avec un navigateur Web.

Nous allons créer un nouveau site Web pour assurer la promotion de la société.

  • Créez le répertoire publicité sur le disque F:
  • Attention aux paramètres de sécurité sur ce répertoire: l'utilisateur IUSR_SRV2003PN doit être autorisé en lecture et exécution, affichage et lecture (clic droit sur le répertoire pour accéder aux options partage et sécurité puis onglet sécurité)
  • Dans le menu Démarrer sur le serveur, pointez sur Outils d'administration, puis cliquez sur Gestionnaire des services Internet (IIS).
  • Cliquez avec le bouton droit sur Sites Web, puis choisissez Nouveau/Site Web….
  • Lancez l'assistant en cliquant sur Suivant
  • Renseignez le descriptif : Site Web publicité,
  • Indiquez le port TCP que ce site doit écouter : 81, puis suivant
  • Cliquez sur Parcourir … pour préciser le chemin d'accès du répertoire de base : F:\publicité
  • Conservez les autorisations d'accès proposés par défaut et validez en cliquant sur Suivant
  • Copier votre fichier index.htm vers le répertoire F:\publicité
  • Modifier le message contenu dans le corps de cette page comme ci-dessous :
	<h1>Vous êtes sur la page d’accueil PUBLICITE ...</h1>
  • Enregistrez le fichier puis fermez le.
  • Conservez les autorisations d’accès au répertoire virtuel proposées par défaut et cliquez sur Suivant pour terminez la procédure
  • A partir du poste client XP, demander l’affichage de la page http:/192.168.0.1:81
  • Votre page personnalisée s'affiche, confirmant la création du site WEB

Pour héberger un site Web dynamique, il faut un serveur Web et un langage de programmation côté serveur. Pour cela, nous pouvons utiliser ASP. Nous allons donc configurer IIS 6.0 sur le serveur afin d'intégrer ASP.

  • Lancez le programme d'installation dans le menu Démarrer/Panneau de configuration/Ajout-suppression de programmes puis Ajouter ou supprimer des composants Windows
  • Cliquez sur Serveur d'applications puis sur Détails …
  • Cliquez sur Services IIS puis sur Détails …
  • Cliquez sur Service World Wide Web puis sur Détails …
  • Cochez Active Server Pages (ASP) puis validez les options successives pour lancer l'installation

  • Confirmez l'ensemble de vos choix et quittez l'assistant lorsque l'installation est terminée.
  • Pour vérifier le bon fonctionnement de notre service ASP, créez un fichier nommé test.asp dans le répertoire de base du site publicité F:\publicité puis y saisir le code suivant :
<%@ LANGUAGE="VBSCRIPT" %>
<HTML>
<HEAD>
<TITLE>BIENVENUE !</TITLE>
</HEAD>
<BODY>
<% Response.Write("<h1>Bonjour tout le monde !</h1>")%>
<p>Nous sommes le <% Response.Write(DATE) %> et il est <% Response.Write(TIME) %></p>
<% for each variable in Request.ServerVariables
       Response.Write(variable + ": " + Request.ServerVariables(variable) + "<br>")
   next %>
</BODY>
</HTML>
  • Enregistrez ce fichier puis fermez le.
  • A partir du poste client XP, demander l’affichage de la page http:/192.168.0.1:81/test.asp
  • Une page fabriquée à la volée par l'interpréteur ASP s'affiche, confirmant son bon fonctionnement

Pour héberger un site Web dynamique, nous pouvons aussi utiliser PHP : voici comment installer PHP sur notre serveur et configurer IIS 6.0 afin de l'intégrer.

Nous allons au préalable créer un nouveau site Web pour présenter le catalogue de l'entreprise.

  • Créez le répertoire catalogue sur le disque F:, ce sera le répertoire de base du nouveau site
  • Ajoutez IUSR_srv2003PN dans les autorisations
  • Dans le menu Démarrer, pointez sur Outils d'administration, puis cliquez sur Gestionnaire des services Internet (IIS).
  • Cliquez avec le bouton droit sur Sites Web, puis choisissez Nouveau/Site Web….
  • Lancez l'assistant en cliquant sur Suivant
  • Renseignez le descriptif : Site Web catalogue,
  • Indiquez que ce site doit écouter sur le port TCP 82
  • Copier votre fichier index.htm vers le répertoire F:\catalogue puis modifier le message contenu dans le corps de cette page comme ci-dessous :
	<h1>Vous êtes sur la page d’accueil CATALOGUE ...</h1>
  • A partir du poste client XP, demander l’affichage de la page http:/192.168.0.1:82 pour vérifier que votre page personnalisée s'affiche correctement

Nous allons maintenant installer l'archive PHP

  • Télécharger la version 5.2.14 de PHP5 pour Windows sur le site http://windows.php.net/downloads/releases/archives/ (Prendre la version php-5.2.14-Win32-VC6-x86.zip)
  • Décompresser l’archive zip dans un répertoire baptisé php5
  • Copiez ce répertoire php5 sur votre serveur par exemple dans F:\php5\
  • Dans ce répertoire, éditez le fichier texte php.ini-recommended pour trouver et remplacer les lignes suivantes :
; Directory in which the loadable extensions (modules) reside.
; extension_dir = ./

par :

; Directory in which the loadable extensions (modules) reside.
extension_dir = F:\PHP5\ext
  • il faut maintenant enregistrer ce fichier en le renommant php.ini.

Il existe deux manières de configurer PHP5 avec IIS6 :

  1. soit sous forme d’un module intégré ISAPI(php5isapi.dll), option retenue ici,
  2. soit sous forme d’un programme externe CGI (php.exe).

Il ne faut bien sur choisir qu’un seul de ces deux modes ! Nous allons utiliser la 1ère option, plus performante (plus rapide en exécution et plus sécurisée), et dérouler sa configuration en trois étapes.

  • Ouvrez maintenant le gestionnaire IIS.

Première étape, il faut ajouter le module php comme filtre Isapi

  • Faites un clic droit sur le site Site Web catalogue puis affichez les propriétés
  • Sélectionnez l'onglet Filtres ISAPI, puis choisissez Ajouter
  • Donnez un nom au filtre : PHP5 module ISAPI (par exemple).
  • indiquez où se trouve l’exécutable php5isapi.dll en cliquant sur parcourir.

Deuxième étape, il faut associer l'extension .php au filtre nouvellement créé

  • Sélectionnez l'onglet Répertoire de base, cliquez sur Configuration,
  • Dans l’onglet Mappages cliquez sur Ajouter :
  • Renseignez l’emplacement de l’exécutable php5isapi.dll.
  • Et le nom de l’extension associée : .php.
  • Laissez les autres options par défaut.

Dernière étape, autoriser l'extension php

  • Dans la console de gestion de IIS, cliquez sur Extensions du Service Web et choisissez Ajouter une nouvelle extension de Service Web
  • Donnez un nom d’extension : Fichiers PHP (par exemple).
  • Préciser l’emplacement du fichier associé : php5isapi.dll
  • Cochez définir le statut de l’extension à autorisée.

Chargement des extensions PHP5 : Afin que les extensions php soient chargées correctement, veillez à modifier le path windows en ajoutant le chemin F:\php5.

  • Pour ce faire, cliquez sur l’icône Système du panneau de configuration, onglet Avancé/Variables d'environnement/Variables système et modifiez la ligne path en rajoutant ;F:\php5
  • Cette modification sera prise en compte au redémarrage de la machine !

Il faut également redémarrer IIS6 sur le serveur.

  • Dans le menu Démarrer pointez sur Outils d'administration, puis cliquez sur Gestionnaire des services Internet (IIS).
  • Cliquez avec le bouton droit sur srv2003pn, puis choisissez Toutes les tâches/Redémarrer IIS ….

NB : il est souhaitable d'ajouter php parmi les types de page par défaut

  • Sélectionnez l’onglet Documents, puis choisissez Ajouter, Page de contenu par défaut : index.php.

Pour modifier l’ordre de priorité des pages par défaut, vous pouvez monter ou descendre les pages présentes (par exemple index.html, index.aspx etc..).

Tester que cela fonctionne

  • Créez un fichier test.php dans le répertoire de base de votre site Web et y coller avec un éditeur de texte comme Notepad (pas un traitement de texte comme Word) le texte suivant :
<HTML>
<HEAD>
  <TITLE>BIENVENUE !</TITLE>
</HEAD>
<BODY>
  <?PHP echo "<h1>Bonjour tout le monde !</h1>"; ?>
  <p>Nous sommes le <?PHP echo date("d/m/Y"); ?> 
  et il est <?PHP echo date("H:i"); ?></p>
  <?PHP
  phpinfo();
  ?> 
</BODY>
</HTML>

Pour aller plus loin

Depuis la version 5.3 de PHP, le recours à ISAPI que nous avions privilégié à CGI pour des raisons de performances est délaissé au profit de FastCGI.

Lorsque une application Web utilise CGI (Common Gateway Interface), celle-ci exécute un nouveau processus à chaque requête. La programmation est parfois ardue car le programme est systématiquement exécuté dans un environnement vierge et il faut éventuellement retrouver les informations des requêtes précédentes. De plus, la création systématique de processus peut entrainer une saturation du serveur en cas de forte sollicitation.

Avec FastCGI, un ensemble limité de processus est utilisé pour traiter toutes les requêtes. Suivant les cas, la programmation peut être beaucoup plus simple et le traitement des requêtes plus rapide.