1Introduction

Le concept de serveur et client HTTP a été développé par Tim Berners-Lee du CERN (Centre Européen de Recherche Nucléaire) à Genève, en Suisse.

Le nom Apache vient de "A PAtCHy server", en raison du mode de développement par patchs de ces premières versions. Ses performances, sa robustesse, son utilisation aisée, et sa licence en font le serveur Web le plus populaire au monde depuis mars 1997.

Selon la société Netcraft, qui étudie chaque mois les "parts de marché" des différents type de serveurs Web, Apache domine largement ses concurrents avec une utilisation sur plus de 60% des serveurs HTTP publics dans le monde.

Part de marché des principaux serveurs Web depuis août 1995 (Netcraft)

Ce succès est non seulement dû à sa gratuité, mais également à sa robustesse et à son extensibilité. Apache est également une plate-forme de choix pour un intranet, et est très répandu dans les universités et les écoles.

Actuellement, 2 versions sont disponibles sur le site d'Apache :

Remarque :
La version 2.0 apporte entre autres des performances accrues sur toutes les plate-formes supportées ainsi qu'un nouveau mode de fonctionnement alliant les threads et les processus.

Les améliorations apportées par la version 2 :


2HTTP

Le fonctionnement du Web est basé sur le modèle requête/réponse qui est implémenté sous la forme du protocole HTTP (HyperText Transfer Protocole).

Apache, serveur HTTP, est conforme à ce protocole, et reconnaît également les requêtes HTTP/1.1, dernières extensions à HTTP.

HTTP utilise le protocole TCP :

Voir le cours « Le Protocole HTTP »

Voir Les caractéristiques du protocole TCP.

3Fonctionnement

Le programme Apache fonctionne sous de nombreuses plate-formes multitâches telles que :

L'éxécutable se nomme httpd sous Linux, apache.exe sous Windows, et fonctionne en arrière plan.

Entièrement configurable, il supporte la plupart des protocoles. L'écriture de modules permet de le personnaliser. Enfin, il s'interface avec tous les systèmes d'authentification et toutes les bases de données, intègre en standard le protocole de sécurisation SSL (Secure Sockets Layers), permet d'intégrer en tant que "plug-ins" les langages de programmation de pages Web dynamiques les plus courants.

Il est distribué sous une licence "Open source", donc :

Au repos, Apache "écoute" les ports TCP des adresses IP indiqués dans son fichier de configuration.

Lorsqu'une requête HTTP se présente sur un port valide, Apache en analyse les en-têtes. Il applique alors les directives du fichier de configuration.

De nombreuses directives du fichier de configuration permettent de contrôler le fonctionnement d'Apache. Il est également possible d'utiliser quelques options en ligne de commande.

Apache est modulaire. Cela signifie que des modules peuvent être ajoutés ou retirés à Apache afin de lui apporté ou de lui enlever des fonctionnalités.

Chaque module est constitué de code éxécutable compilé qui peut être inclus dans l'éxécutable ou alors chargé dynamiquement en mode DSO (Dynamic Shared Object). Cette technique permet de charger un module en mémoire que lorsque cela devient nécessaire, cela à pour conséquence d'optimiser l'utilisation de cette dernière.

Liste des modules :

4Liens Utiles

5Installation

5.1Sous Linux

L'utilisateur aura le choix entre :

5.1.1Compiler et installer les sources

voir http://httpd.apache.org/docs/install.html .

5.1.2Installer des packages

Les distributions Linux fournissent Apache sous forme de packages (ou paquetages). C'est une archive contenant des données et/ou des programmes ainsi que les informations nécessaires à une installation correcte de ceux-ci sur le système.

Il existe différents types de package :

Ces packages peuvent être téléchargés sur les sites des distributions :

5.1.3Installation rapide

LinuxEasyInstaller : script écrit en PERL qui installe MySQL, Apache, PHP et phpMyAdmin.

5.2Sous Windows

Les versions pour Windows 95/98/NT/2000 sont toutes identiques, sauf pour Windows NT où Apache peut également être exécuté en tant que service.

5.2.1Compiler et installer les sources

Ce type d'installation nécessite la présence d'un compilateur C pour compiler et installer Apache.

Voir http://www.linux-kheops.com/doc/apache/manual-eisti/windows.html#comp

5.2.2Installer les binaires

Il suffit de cliquer deux fois sur le fichier téléchargé pour qu'Apache s'installe automatiquement. Par défaut, le répertoire de destination est C:\Program Files\Apache Group\Apache.

5.2.3Installation rapide

5.3Sous Mac OS X

Le serveur Apache est intégré à la dernière version de MacOS.

Articles à voir sur PHPmac.com ainsi que sur stepwise.com.

6Structure

L'installation d'Apache sur une plate-forme Linux crée plusieurs répertoires contenant:

Le principal répertoire est sous Ubuntu le répertoire /etc/apache2

7Les fichierss de configuration

La configuration d'Apache est désormais répartie dans différents fichiers situés dans /etc/apache2/. Le fichier de configuration principale du serveur est /etc/apache2/apache2.conf. Ce fichier inclut des directives de configuration provenant d'autres fichiers de configuration par des clauses Includes.

Dans cette nouvelle version d'Apache la configuration des sites Web virtuels est déportée dans le répertoire /etc/apache2/sites-available/ qui contient un fichier de configuration par site virtuel. Ce répertoire contient les sites virtuels disponibles. Pour rendre accessible un site il suffit alors de créer un lien symbolique dans le répertoire /etc/apache2/sites-enabled/ pointant vers le fichier de configuration adéquat se trouvant dans le répertoire /etc/apache2/sites-available/.

Par défaut Apache propose un site virtuel dont le fichier de configuration est /etc/apache2/sites-available/default. C'est ce fichier que nous allons modifier dans le TP

8Les fichiers .htaccess

Sauf indication contraire les pages d'un serveur Web sont accessibles depuis tout l'Internet. Il est cependant tout à fait possible, et même conseillé, de restreindre l'accès à une page ou à une partie d'un serveur. Ces restrictions peuvent être gérées selon différents critères :

Avantages des fichiers .htaccess :

L'inconvénient tient au fait que les fichiers sont analysés à chaque accès au serveur entraînant une diminution des performances.