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

 

Apache comment ça marche - win32

1 - 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.12, 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 Windows 98 et NT.

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 à ê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.

2 - 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 fichiers 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'éxécutable du serveur.
c:/Apache/bin Contient le programme permettant de créer des utilisateurs.
c:/Apache/cgi-bin Contient vos sources cgi-bin, exemple : le compteur, l'horloge et le guestbook.
c:/Apache/conf Contient le fichier de configuration (httpd.conf).
c:/Apache/htdocs Contient le site web proprement dit (fichiers html, images, downloads, ...).
c:/Apache/icons Contient les icônes affichant une liste de fichiers.
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.
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 "dafy" comme ceci :

ServerName dafy

Désormais votre serveur s'appelle "dafy". Sauvegardez le fichier et démarrer votre serveur (démarrer - programmes - apache web server - Start Apache as console app). 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 "dafy". 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 "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 confirmant 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.

3 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

4 - 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 pour créer l'utilisateur BugsBunny avec 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 nomutilisateur).

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

5 - 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 f:\archive\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 sur le disque F: 
# 
Alias /perso/ "f:/archive/web/perso/" 

 AllowOverride AuthConfig 
 Options None 

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/.

6 - Le proxy

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

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

7 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

 
SetHandler server-status 
Order deny,allow 
deny from all 
allow from all 

8 - 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ées dynamiques et 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 :

<?php 
phpinfo(); 
> 

9 - 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épertoires sont sittués dans le dossier public_html de chaque utilisateur /home/user/public_html. 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://dafy/~BugsBunny/.

 

Site hébergé officiellement chez Linux France - © 1999 2005