• Aucun résultat trouvé

4.Vérification de l’interface avec ifconfig.

M. ROOT-SERVERS.NET 3600000 A 202.12.27.33 ; End of File

VI. Le courrier électronique.

3. Un véritable site.

3.1. Interprétation du code HTML.

L’exemple précédent ne donne pas des résultats satisfaisants avec tous les browsers . La navigation vers l’URL http://p200.challe.be/index.html n’affiche une page correcte que par l’utilisation de Microsoft Internet Explorer. L’emploi de Netscape Navigator ou de lynx fait apparaître le code HTML de la page et non pas son interprétation. En effet, ces navigateurs exploitent l’extension du fichier pour déterminer la manière dont il doit être interprété. Aussi, un fichier de type .html doit-il être interprété comme contenant du code HTML. Cette interprétation est rendue possible par l’intermédiaire du fichier /etc/mime.types. Ce fichier contient, pour chaque extension, la réaction appropriée du navigateur. L’utilisation du fichier /etc/mime.types est précisée par l’option TypesConfig suivie du nom du fichier mime.

Toutes les versions d’APACHE ne sont pas compilées de manière à prendre en compte la gestion mime. Dans certains cas, l’utilisation de mime dépend du chargement d’un module spécifique contenant des extensions d’APACHE. Ces extensions peuvent être chargées au moyen des options LoadModule et AddModule. Le programme APACHE a été conçu pour être exécuté sur un grand nombre de systèmes dont les interfaces de programmation diffèrent. Les différentes fonctionnalités d’APACHE étant parfois dépendantes du système d’exploitation sous -jacent, il est plus commode de rédiger le programme en le découpant en plusieurs modules. Les modules spécifiques aux différents systèmes seront ainsi réécrits plusieurs fois. Cette approche modulaire présente également l’avantage de réduire au strict minimum la taille du code exécutable. En effet, toutes les implémentations d’APACHE ne nécessitent pas toujours les mêmes fonctionnalités. De ce fait, APACHE a été découpé en plusieurs modules chargeables à la demande. Pour qu’APACHE puisse charger dynamiquement des modules, il faut lui adjoindre le code de gestion de ces modules. L’option AddModule permet de charger le module mod_so.c autorisant le chargement dynamique de modules. Le principe de chargement d’un module se passe en deux étapes, il y a d’une part son chargement et d’autre part son ajout à la liste des modules. L’option LoadModule permet le chargement alors que l’option AddModule permet l’ajout.

Dans le cas qui nous occupe actuellement, il faut charger le module mime. Voici le contenu du fichier de configuration d’APACHE :

[root@p200 conf]# cat httpd.conf ServerType standalone

ServerRoot "/etc/httpd"

LoadModule mime_module modules/mod_mime.so ClearModuleList AddModule mod_mime.c AddModule mod_so.c User nobody Group nobody ServerAdmin root@p200.challe.be DocumentRoot "/home/httpd/html" TypesConfig /etc/mime.types

L’option ServerType détermine comment le serveur Web est lancé. Il peut être activé de manière autonome ou par l’intermédiaire du démon inetd. Généralement, APACHE est configuré en standalone bien que la sécurité soit meilleure s’il est exécuté par inetd. Les administrateurs préfèrent ignorer la sécurité car un lancement par inetd implique que lors de chaque demande de connexion, une nouvelle instance du serveur Web est créée. Dès que la connexion est terminée, le serveur est arrêté. Ce comportement peut dégrader les performances du système.

Pour qu’APACHE soit en mesure de trouver les modules qu’il doit charger, il doit localiser le répertoire contenant les informations de configuration. Le répertoire /etc/httpd est la racine d’un sous-répertoire contenant les fichiers de configuration, les fichiers d’enregistrement des erreurs ainsi que les fichiers correspondant aux différents modules. L’option ServerRoot fixe l’emplacement de la racine du système de fichiers contenant les informations précitées.

Le serveur est fourni avec une liste de modules actifs. Cette liste peut être vidée au moyen de l’option ClearModuleList. Cette option présume que la liste sera reconstruite en utilisant l’option AddModule.

3.2. Chargement automatique du fichier index.html.

Lorsqu’un client souhaite accéder à un site Web, il ne précise que le nom de la machine sur laquelle réside le site. Cependant la configuration actuelle ne permet pas ce genre de requête. En effet, sans nom de fichier, le serveur n’a pas suffisamment d’informations pour déterminer le fichier par défaut qu’il faut envoyer au client. Une telle requête se soldera donc par un échec.

Dans la majorité des cas, le nom du fichier à charger par défaut est index.html. L’option DirectoryIndex permet de fixer le nom du fichier qui doit être envoyé au client lors d’une requête ne contenant que le nom de la machine. Pour que cette option soit reconnue, il faut charger le module mod_dir. Voici la nouvelle configuration du serveur APACHE : [root@p200 conf]# cat httpd.conf

ServerType standalone ServerRoot "/etc/httpd"

LoadModule mime_module modules/mod_mime.so LoadModule dir_module modules/mod_dir.so ClearModuleList AddModule mod_mime.c AddModule mod_dir.c AddModule mod_so.c Port 80 User nobody Group nobody ServerAdmin root@p200.challe.be DocumentRoot "/home/httpd/html" TypesConfig /etc/mime.types DirectoryIndex index.html

3.3. Gestion de plusieurs répertoires.

Le site d’un serveur APACHE est, entre autres, constitué du répertoire /home/httpd/html et du répertoire /home/httpd/icons. Le dernier répertoire contient des icônes pouvant être employées dans les différentes pages HTML du site. Le code HTML fait référence à ces objets comme s’ils figuraient dans le répertoire /home/httpd/html/icons. Dans l’état actuel des choses, une telle référence se soldera par un échec car le répertoire /home/http/html/icons n’existe pas. Le fichier de configuration d’APACHE doit être modifié pour qu’une référence au répertoire icons soit considérée comme une tentative d’accès au répertoire /home/httpd/icons. L’option Alias détermine l’emplacement réel d’un répertoire correspondant au dossier demandé. Pour que cette option soit utilisable, il faut charger le module mod_alias. Voici un exemple de configuration du serveur APACHE prenant en charge les alias :

[root@p200 conf]# cat httpd.conf ServerType standalone

ServerRoot "/etc/httpd"

LoadModule mime_module modules/mod_mime.so LoadModule dir_module modules/mod_dir.so LoadModule alias_module modules/mod_alias.so ClearModuleList AddModule mod_mime.c AddModule mod_dir.c AddModule mod_alias.c AddModule mod_so.c Port 80 User nobody Group nobody ServerAdmin root@p200.challe.be DocumentRoot "/home/httpd/html" TypesConfig /etc/mime.types DirectoryIndex index.html

3.4. Utilisation des CGI.

Les sites Web peuvent être configurés de manière à ce qu’un programme soit exécuté par le serveur. Ces programmes sont appelés des scripts CGI (Common Gateway Interface). Ces scripts peuvent être écrits en langage C, en bash ou en perl. Voici un exemple de script écrit au moyen de l’interpréteur de commandes bash :

[root@p200 cgi-bin]# cat script #!/bin/bash

echo "content-type:text/html" echo

echo "<html>"

echo " Bonjour Monsieur" echo "</html>"

Voici le même exemple de CGI rédigé en langage C : [root@P100 cgi-bin]# cat ess.c #include <stdio.h> void main () { printf("content-type:text/html\n\n"); printf("<html>\n"); printf("bonjour monsieur\n"); printf("</html>\n"); }

Pour que les scripts soient exécutables, il faut non seulement inclure le module CGI dans la configuration d’APACHE mais également définir le répertoire /home/httpd/cgi-bin comme étant un répertoire accessible à partir des clients. Voici la nouvelle configuration du serveur :

[root@p200 conf]# cat httpd.conf ServerType standalone

ServerRoot "/etc/httpd"

LoadModule mime_module modules/mod_mime.so LoadModule dir_module modules/mod_dir.so LoadModule cgi_module modules/mod_cgi.so LoadModule alias_module modules/mod_alias.so ClearModuleList AddModule mod_dir.c AddModule mod_cgi.c AddModule mod_alias.c AddModule mod_so.c Port 80 User nobody Group nobody ServerAdmin root@p200.challe.be DocumentRoot "/home/httpd/html" TypesConfig /etc/mime.types DirectoryIndex index.html

Alias /icons/ "/home/httpd/icons/"

ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"

3.5. Remarque.

Les distributions d’APACHE sont fournies avec un fichier /etc/httpd/conf/httpd.conf préétabli contenant de nombreuses options et proposant beaucoup de fonctionnalités. Généralement, l’administrateur considère ce fichier comme une base à la configuration du serveur Web. A partir de maintenant, les modifications seront directement appliquées au fichier de base fourni avec APACHE.