Home | Linux | Réseaux | Developpement | Divers | FAQ | Forum | Guestbook | Musique |

 

Apache comment ça marche - Linux

1 - Introduction

Je ne reprendrai pas toute la déscription d'Apache ; si cela vous interesse veuillez vous reporter à la version win32.
La dernière version d'Apache en date est la version 1.3.23. http://www.apache.org. Apache est installé par défaut sous Linux en mode serveur ; si toute fois vous souhaitez l'installer à la main suivez la rubrique suivante.

2 - Installation

Vous avez deux façons d'installer Apache sur votre poste, soit par rpm soit par tarball, rpm pour les feignants et le tarball pour les passionnés ;-)

  • la méthode du feignant :
    $ mount /mnt/cdrom
    $ cd /mnt/cdrom/RedHat/RPMS
    $ rpm -ivh apache* (apache et apacheconf)
    
    Le problème de ce type d'installation est que vous ne maitrisez pas l'intégralité de la manoeuvre ce qui peut être génant en terme de sécurité. De mémoire, vous aurez la section contenant les fichiers du site web (html et cgi) sous /var/www et les fichiers de conf sous /etc/httpd/conf.
  • la méthode du passionné :
    Téléchargez le tarball sur http://www.apache.org, créez un répertoire qui sera destiné à recevoir l'installation.
    $ mkdir /apache
    $ tar zxvf apache_1.3.1.tar.gz 
    $ cd <répertoire de décompression>
    $ ./configure --prefix=/apache 
    $ make 
    $ make install
    

3 - Configuration de base

L'arborescence resemble à ceci :

Arborescence Désignation
/apache/bin Contient l’exécutable du serveur, utilitaires, bench, démon du serveur (à invoquer dans le /etc/inetd.conf
/apache/cgi-bin Contient vos sources cgi-bin, exemple : le compteur, l’horloge et le guestbook de mon site sont gérés par des cgi-bin – par la suite je n’emploierai plus le terme de cgi-bin mais cgi.
/apache/conf Contient le fichier de configuration (httpd.conf)
/apache/htdocs Contient le site web proprement dit (les fichiers html, les images, les fichiers destinés à être téléchargés et ce que vous voulez).
/apache/icons Contient les icônes qui seront affichées lors des requêtes représentant le contenu d’un repertoire.
/apache/log Contient les fichiers de journalisation du serveur – accès et erreurs.

Configurons maintenant le serveur. Veuillez utiliser un éditeur de texte tel que Emacs ou Vi. Lancez Emacs et ouvrez le fichier " /apache/conf/httpd.conf ", dorénavant nous le nommerons "fichier config". Une fois ouvert rechercher la chaîne de caractère :

#ServerName new.host.name

(Sous Vi utilisez la recherche de chaine de carractère : /ServerName en mode commande pour éviter de vous en sortir avec une calvitie à la fin de la configuration de votre serveur.)
Lorsque vous l’avez trouvé, retirez le caractère dièse (" # "), c’est comme cela que l’on commente un fichier dans le monde Unix. Vous venez de rendre le serveur opérationnel en lui donnant un nom, mais je pense qu’un nom plus simple vous ira mieux, renommez " new.host.name " en prenant le nom de votre poste :

ServerName dafy

Désormais votre serveur s’appelle " dafy ". Sauvegardez le fichier et démarrer votre serveur :

# /apache/bin/apachectl start

Les autres options sont : start, stop ou restart selon le besoin.
Rendez vous dans votre navigateur internet favori et ouvrez la configuration du proxy. Ajoutez "dafy " dans le champs mentionnant de ne pas utiliser le proxy pour ces adresses, confirmez le tout et tapez l’adresse suivante : http://dafy/, vous devriez voir la fenêtre ci-dessous qui confirme le bon fonctionnement du serveur. Arrêtons le serveur pour que les modifications que nous allons faire prennent effet lors du prochain redémarrage du serveur.

4 - Les CGI - Common Gateway Interface

Il ne vous reste plus qu’à remplir votre site afin que les informations que vous y avez déposé soit accessible depuis le monde entier. Vous allez me dire : " c’est bien joli d’avoir un serveur qui fonctionne, mais comment peut on savoir qui est venu et combien de personne y ont mis les pieds ? ".
C’est pour cela que je vais vous parler des CGI ; mais quel est ce terme barbare ? me direz vous. Et bien CGI signifie Common Gateway Interface. Ce procédé permet d’afficher des compteurs, des horloges sur les pages ainsi que des " guestbook " - sortes de livres d’or destinés à être signés par les visiteurs. Mais à partir du moment où vous achetez on line il y a de fortes chances pour que derrière votre commande il y ait un CGI pour recueillir les informations que vous avez mentionnées dans le formulaire de la dite commande.
Vous pouvez trouver des compteurs, des horloges, es guestbook à l’adresse suivante : http://www.hotscripts.com.
Vous pouvez également créer vos propre CGI en Perl. Pour cela rechercher la ligne :

LanguagePriority en fr de

et ajoutez en dessous, en ayant pris soin de sauter une ligne, ceci :

AddHandler cgi-script .cgi 
AddHandler cgi-script .pl

5 - La sécurité

Maintenant passons à la sécurité - " sortez couvert... ".
Pour empêcher que les utilisateurs puissent lister le contenu de votre serveur, de façon identique à la commande " dir " sous dos ou via l’explorateur, on mentionne au serveur, dans le fichier config, aux emplacements de "Directory", la ligne suivante :

Options None

Maintenant votre serveur interdit le listage des fichiers mais on peut toujours accéder à votre serveur... Pour y remédier nous allons créer des utilisateurs.
Ouvrez une console et tapez la commande suivante :

$ /apache/bin/htpasswd –c ../conf/users BugsBunny 
New password: ******* carotte 
Re-type new password: ******* carotte 
Updating password for user BugsBunny

Le premier mot, que vous avez tapé, est le programme qui permet de créer des utilisateurs, le second est un argument (-c pour créer un fichier d’utilisateur), le troisième est le nom du fichier contenant les noms des utilisateurs et le dernier : l’utilisateur que vous désirez créer. Vous pouvez en ajouter dans le même fichier, dans notre exemple le fichier s’appelle users (htaccess users NomDUtilisateur). Après avoir validé ceci, le programme vous demande un mot de passe – une identification et une confirmation.
Ouvrez un éditeur de texte et écrivez les lignes suivantes que vous sauvegarderez dans le fichier " .htaccess " - attention il y a un point avant le nomdu fichier - qui devra se trouver dans le répertoire /apache/htdocs.

AuthName "Bienvenue sur mon serveur web" 
AuthType Basic
AuthUserFile "/apache/conf/users" 
require valid-user

Vous remarquerez que la troisième ligne du fichier fait référence au nom du fichier que nous avons crée plus haut. Nous venons de créer un utilisateur, en l’occurrence BugsBunny, mais tout le monde peut toujours accéder à votre serveur : pour remédier à cela, ouvrez le fichier de config. Recherchez la chaîne de caractère suivante :

<Directory "/apache/htdocs">

quelques lignes plus bas vous trouverez une chaine de carractère semblable à celle ci :

AllowOverride None

Remplacez " None " par " AuthConfig ". Faites de même pour <Directory "/apache/cgi-bin">. Sauvegardez les modifications et relancez le serveur.

6 - Les alias

Afin de personnaliser votre serveur vous pouvez ajouter des alias. Un alias définit un chemin autre que htdocs. Par exemple, nous avons des documents dans le chemin suivant : /home/max/web/perso/. Mais on ne peut y accéder via un browser. Pour cela nous allons créer un alias à placer dans le fichier de config comme ceci :

### Perso  
# 
Alias /perso/ "/home/max/web/perso/" 
<Directory "/home/max/web/perso/"> 
AllowOverride AuthConfig 
Options None 
</Directory>

Ces lignes peuvent être placée n'importe où dans le fichier ; personnelement je place les alias dans "Section 1: Global Environment", c'est plus facile à trouver. Le chemin d'accès sera donc http://dafy/perso/. Vérifiez les droits d'accès ...

7 - Le Server Status

On peut aussi jouer l'espion !! Voici un module permetant de connaitre la charge du serveur, comme ci-dessus, on place le code dans le fichier de conf.

<Location /server-status> 
SetHandler server-status 
Order deny,allow 
deny from all 
allow from all 
</Location>
Site hébergé officiellement chez Linux France - © 1999 2005