Index Page précédente Page suivante

XI. MISE EN PLACE DU SERVICE HTTP

HTTP (Hypertext Transfert Protocol) est un service qui permet d'héberger un ou plusieurs site(s) web. Par convention, il utilise le port 80. Nous allons ici utiliser le plus connu des démons HTTP, à savoir celui contenu dans le module « Apache ».
 

A. Installation

Le package a installer est :

   apache
 

B. Configuration

Une fois Apache installé, il faut lancer le démon httpd. Ceci se fait en tapant la commande :

   /etc/rc.d/init.d/httpd start

Apache n'est pas un démon lancé par l'intermédiaire d'inetd. Pour qu'Apache se lance automatiquement à chaque boot, il faut utiliser le programme setup pour la Red Hat 6.x, 7.x ou la Mandrake 6.x. Pour la Mandrake 7.0, il faut utiliser la commande drakxservices. Sélectionnez httpd et validez.

Les possibilités de configuration d'Apache sont nombreuses et sortent du cadre de ce document. Sachez cependant que dans la plupart des cas, la configuration par défaut convient.

Pour vérifier que votre serveur web fonctionne, tapez la commande :

   telnet 127.0.0.1 80

Le serveur doit renvoyer un message du type :

   Trying 192.168.0.1...
   Connected to cirl3.esic.
   Escape character is '^]'.

Tapez ensuite un truc. Par exemple :

   kdshkqsdhk

Le serveur doit répondre :

   <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
   <HTML><HEAD>
   <TITLE>501 Method Not Implemented</TITLE>
   </HEAD><BODY>
   <H1>Method Not Implemented</H1>
   kdshkqsdhk to /index.html not supported.<P>
   Invalid method in request kdshkqsdhk<P>
   </BODY></HTML>
   Connection closed by foreign host.

qui est en fait un message signalant que le serveur n'a rien compris à ce que vous lui avez demandé. Qu'importe, l'important est qu'il a répondu, donc ça marche.
 

REMARQUE

Si vous avez un serveur X correctement installé sur votre machine, le plus simple pour vérifier si cela fonctionne est d'utiliser un navigateur web (Netscape est gratuit) et d'y taper l'url http://127.0.0.1
 

C. Gestion des utilisateurs

Voyons maintenant comment filtrer les accès HTTP par mot de passe sur un répertoire avec Apache.

Tout d'abord, créez un répertoire /home/httpd/html/Pswd contenant

a) Le fichier .htaccess avec juste une ligne :

   deny from all

Ceci permet de refuser l'accès à tout le monde à ce répertoire. Utile vu qu'il va contenir la liste des logins et des mots de passe des
utilisateurs privilégiés.

b) Le fichier Pswd.txt qui renferme les utilisateurs et les mots de passe sous la forme

   login:mot_de_passe

ATTENTION : les mots de passe doivent être cryptés. Le plus simple est de créer un compte shell avec le login sur la station et de récupérer le mot de passe crypté correspondant dans le fichier /etc/shadow (ou /etc/passwd) suivant votre configuration.

Créez ensuite le répertoire où l'accès est restreint. Il doit contenir un autre fichier .htaccess avec les lignes suivantes :

   deny from all
   AuthType Basic
   AuthUserFile "/home/httpd/html/Pswd/Pswd.txt"
   require valid-user
   satisfy any

Configurez maintenant Apache avec le fichier /etc/httpd/conf/access.conf pour que la présence d'un fichier .htaccess  dans un répertoire du serveur supplante les options par défaut (directive AllowOverride). Repérez les lignes suivantes dans votre fichier et vérifiez qu'elles sont semblables à  :

   # Blah, blah, blah ...
   Options Indexes Includes FollowSymLinks

   # Voici la ligne importante
   AllowOverride All

Pour teminer, n'oubliez pas de relancer httpd (/etc/rc.d/init.d/httpd restart). C'est tout.
 

D. Ajout d'un module php3

Il faut installer les packages freetype et mod_php (Apache doit évidement déjà être installé).

Modifiez le fichier /etc/httpd/conf/httpd.conf de la manière suivante :

   # Modules pour PHP
   LoadModule php3_module        modules/libphp3.so

   # Reconstruire les Modules Disponibles
   AddModule mod_php3.c

   # Port = 80 , pour les ports < 1024, httpd doit apartenir a root .
   Port 80
 

Modifiez ensuite le fichier /etc/httpd/conf/srm.conf :

   # inqiquez les différents type d'index a utiliser, les separer par un
   # espace
   DirectoryIndex index.shtml index.php3 index.html index.cgi index.htm

   # (vers la fin du fichier)
   # Pour le Module PHP3
   AddType application/x-httpd-php3 .php3
   AddType application/x-httpd-php3-source .phps
 

Relancez Apache.

Testez en créeant le fichier /home/httpd/html/phpinfo.php3 tel que :

   <HTML>
   <BODY>
   <?php
      phpinfo();
   ?>
   </BODY>
   </HTML>
 


Index Page précédente Page suivante