~~SLIDESHOW~~ ====== 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. ====== Installer IIS 6.0 ====== 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 ...** {{:si5_-_w2003:si5..c10_g2bis.png|}} * 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 ! ====== Le site Web par défaut ====== 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** {{:si5_-_w2003:si5..c10_g1.png|}} * 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 : BIENVENUE !

Vous êtes sur la page d’accueil du site Web par défaut ...

* 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 :

Vous êtes sur la page d’accueil des comptables ...

* 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 :

Vous êtes sur la page d’accueil PUBLICITE ...

* 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 ====== Installation d’ASP ====== 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 {{:si5_-_w2003:si5..c10_g2.png|}} * 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" %> BIENVENUE ! <% Response.Write("

Bonjour tout le monde !

")%>

Nous sommes le <% Response.Write(DATE) %> et il est <% Response.Write(TIME) %>

<% for each variable in Request.ServerVariables Response.Write(variable + ": " + Request.ServerVariables(variable) + "
") next %>
* 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 ======= Installation de PHP ======= 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 :

Vous êtes sur la page d’accueil CATALOGUE ...

* 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 : - soit sous forme d’un module intégré ISAPI(php5isapi.dll), option retenue ici, - 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**. {{:si5_-_w2003:si5..c10_g3.png|}} ==== 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. {{:si5_-_w2003:si5..c10_g4.png|}} ==== 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**. {{:si5_-_w2003:si5..c10_g5.png|}} **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 : BIENVENUE ! Bonjour tout le monde !"; ?>

Nous sommes le et il est

* Avec votre navigateur Internet, accéder à **http://192.168.0.1:82/test.php** : une page s'affiche pour confirmer le fonctionnement de PHP. ===== 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.