Apache, comment ca marche ?

version win32
 
 
[Introduction] | [Configuration de base] [Les CGI] | [La sécurité] | [Les alias
[Le proxy] | [Le server-status] | [PHP3] | [UserDir] | [Conclusion

 

Introduction

 

 

Au bout de 30 min vous aurez un serveur web qui fonctionnera parfaitement et qui sera sécurisé en plus ; cependant ce guide est destiné à un public ayant des connaissances en html, il n’y a aucune informations à ce sujet dans les pages qui suivent, mais vous avez la possibilité d’en trouver très facilement - le web en regorge. 

Apache est un serveur web fiable, sécurisé, compacte et gratuit ; vous remarquerez que j'en met une couche pour le logiciel libre... Vive le GNU (organisme qui développe des logiciels libres), GPL (General Public License) et vive Richard Stallman (le père du logiciel libre), Lary Wall (le père du langage Perl) et les éditions O'Reilly - les meilleurs bouquins sur les logiciels libres. Oups, j'oubliais Linus Torvalds (créateur de Linux). 

La dernière version d'Apache en date est la version 1.3.9, on la trouve sur http://www.apache.org, mais je ne saurais vous conseiller la version 1.3.6 si votre Windows n'est autre que 95, pas de problème en revanche avec Windows98. 

Lorsque vous vous trouvez sur le site, allez dans la partie "download" puis cliquez sur le fichier "apache_1_3_6_win32.exe", win32 signifie que cette archive est destinée a être installée sur un système d'exploitation win32 (windaube 95, 98 ou haine T) sinon les autres fichiers portent l'extension "tar.gz" ce qui signifie qu'ils sont destinés à un système d'exploitation basé sur Unix. 




Configuration de base

Le fichier est arrivé sur votre disque dur, lancez-le. L'installation va vous demander un chemin d'installation - par défaut "C:\Program Files\Apache\Group\Apache" - je conseille de modifier celui ci en "C:\Apache" afin d'avoir un accès instantané aux fichier du serveur, puis choisissez l'installation custom pour avoir tout sous la main. Une fois installé vous devez avoir une arborescence comme ceci : 
 
 
Arborescence Désignation
c:/Apache Contient l’exécutable du serveur
c:/Apache/bin Contient le programme permettant de créer des utilisateur
c:/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.
c:/Apache/conf Contient le fichier de configuration (httpd.conf)
c:/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.
c:/Apache/icons Contient les icônes qui seront affichées lors des requêtes représentant le contenu d’un repertoire.
c:/Apache/log Contient les fichiers d’accès au serveur – accès et erreurs.
c:/Apache/modules Contient des modules additionnels au seveur comme Perl ou les Servlets (Java).
c:/Apache/src Contient le programme source du serveur.

Configurons maintenant le serveur. Veuillez utiliser un éditeur de texte tel que le bloc note de windows mais surtout pas wordpad ou word afin de travaillez sur du texte brut et non du texte formaté. Lancez le bloc note et ouvrez le fichier " httpd.conf " se trouvant dans le répertoire c:/apache/conf, dorénavant nous le nommerons "fichier config". Une fois ouvert rechercher la chaîne de caractère : 

#ServerName new.host.name

(Je vous conseille d’utiliser la recherche automatique 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 animal de compagnie, par exemple " minou " comme ceci : 

ServerName minou

Désormais votre serveur s’appelle " minou ". Sauvegardez le fichier et démarrer votre serveur (démarrer - programmes - apache web server - Start Apache as console app) vous devriez voir ceci à l’écran : 



Si vous voyez ceci à l’écran, bravo vous avez réussi à configurer et a lancer votre serveur. Mais ce n’est pas fini. 

Allez dans les propriétés réseau, puis dans l’onglet identification et donnez un nom explicite a votre ordinateur. 
Dans notre exemple l’ordinateur s’appelle " minou ". 

Le nom de l'ordinateur doit être le même que celui du serveur sinon vous ne pourez pas vous servir du serveur http. 
 
 

Rendez vous dans votre navigateur internet favori et ouvrez la configuration du proxy. 
 
 

Ajoutez "minou ", comme ci-dessus dans le champs mentionnant de ne pas utiliser le proxy pour ces adresses, confirmez le tout et tapez l’adresse suivante : http://minou/, 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. Affichez la fenêtre dos du serveur et appuyez simultanément sur les touches <ctrl> + <c>. 
 
 




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, des guestbook à l’adresse suivante : http://www.geocities.com/SiliconValley/6742/, tout est très bien expliqué pour ce qui est de l’installation, la configuration et l’utilisation dans la documentation jointe à l’archive que vous téléchargerez. 

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




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

[ATTENTION EN UNIX UNE MAJUSCULE ET UNE MINUSCULE SONT DIFFERENTES]

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 fenêtre dos et allez dans le répertoire c:\apache\bin 

Tapez la commande suivante : - dans l’exemple suivant vous pouvez attribuer à l’utilisateur BugsBunny le mot de passe carotte 

c:\apache\bin>htpasswd –c users BugsBunny 

Automatically using MD5 format on Windows. 

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 le bloc note et écrivez les lignes suivantes que vous sauvegarderez dans le fichier " htaccess " qui devra se trouver dans le répertoire c:\apache\htdocs 

AuthName "Bienvenue sur mon serveur web" 

AuthType Basic 

AuthUserFile "c:/apache/bin/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 "c:/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 "c:/apache/cgi-bin">

Puis recherchez la chaine de caractère suivante : 

AccessFileName .htaccess

Retirez le point devant htaccess pour avoir ceci : 

AccessFileName htaccess




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 : f:\archive\web\perso\. Mais on ne peut y accéder via un browser. Pour cela nous alons créer un alias à placer dans le fichier de configcomme ceci : 

### Perso sur le disque F: 

Alias /perso/ "f:/archive/web/perso/" 
<Directory "f:/archive/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://minou/perso/. 




Le proxy

Apache peut vous servir de proxy en ajoutant ces quelques lignes dans le fichierr de conf. 

LoadModule proxy_module modules/ApacheModuleProxy.dll 
ProxyRequest On 
ProxyRemote * inserez ici l'adresse IP ou le nom de la machine étant proxy à l'origine
<Directory proxy:*"> 
allow from inserez ici les adresses IP autorisée à sortir
</Directory> 




Le Server Status

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

LoadModule status_module modules/ApacheModuleStatus.dll 
ExtendedStatus On 
<Location /server-status>> 
SetHandler server-status 
Order deny,allow 
deny from all 
allow from all 
</Location> 




PHP3

Le PHP3 est un langage permetant de générer des pages web dynamiques et également la construction d'un site basé sur des donnée dynamiques é contenues dans des fichiers ou un système de gestion de base de données, autrement appelé SGBD. 

Afin de pouvoir utiliser PHP3, il vous faut un serveur web et le logiciel PHP3 téléchargeable à cette adresse : http://www.php.net

L'archive téléchargée (php-3.0.11-win32.zip), la décomprésser dans le répertoire c:\php3. Puis copier les fichiers php.exe et *.dll dans le répertoire c:\apache\cgi-bin. 

Copier le fichier php3.ini (il se peut que se fichier porte le nom php3.ini-dist, le renomer php3.ini) dans le répertoire de windows. Puis ajouter ou modifier les lignes suivantes : 

log_errors=1 
track_error=0 
cgi_ext=php3 

Configurer Apache en modifiant le fichier de config comme ceci : 

<Directory "c:\apache\cgi-bin"> 
AllowOverride None 
Options ExecCGI 
</Directory> 

Puis : 
AddType application/x-httpd-php3 .php3 
Action application/x-httpd-php3 "/cgi-bin/php.exe" 

On peut aussi ajouter la directory de php dans le fichier autoexec.bat si besoin est. 

Un petit exemple à placer dans le répertoire htdocs : 
<html> 
<head> 
<title>Exemple Php3</title> 
</head> 
<body> 
<h1>Configuration Php3</h1> 

<?php 
phpinfo(); 
?> 
</body> 
</html> 




UserDir

Afin de mieux ordoner le serveur web, Apache permet, aussi bien que dans sa version Unix que Win32, d'attribuer des url différentes à chacun des utilisateurs. Dans le monde Unix ces répertoire sont sittués dans le dossier public_htm de chaque utilisateur (/home/user/public_htm). 
Etant donné que ce type d'arborescence n'existe pas sous Win32, une directive bien spécifique à ceci ce trouve dans le fichier de config, elle se présente comme ceci : 

UserDir "d:/network/apache/users/"

Il faudra créer un répertoire users du fait que par défaut il n'existe pas. Dans ce même répertoire on créera un sous-dossier par utilisateur. Par exemple BugsBunny. 

Pour y accéder on utilisera l'url suivante : 

http://minou/~BugsBunny/




Conclusion

Et bien voilà, votre serveur web Apache est blindé contre tous hackers ou tout intrus non désirables. Pour toutes questions vous pouvez me contacter 24h/24, 7j/7 à l’adresse suivante : blacksnake@fr.fm