Changements et améliorations du serveur web Apache version 2.2 Introduction Apache HTTPd 2.2 constitue la dernière version du logiciel phare de la fondation Apache (Apache Software Foundation) ; c est également celui qui est recommandé par la plupart des développeurs de sites web. Si vous utilisez une version plus ancienne de ce serveur, en particulier une version 1.3, je vous encourage fortement à évoluer vers la version 2.2. Dans ce document, j explique les raisons qui doivent vous conduire à faire cette mise à jour. Je présente également les nouvelles fonctionnalités qui rendent cette version bien supérieure aux précédentes. Voici les nouvelles fonctionnalités détaillées dans ce : organisation du fichier de configuration ; modification du système d authentification ; cache et proxy ; mod_dbd ; httxt2dbm pour les réécritures (RewriteMap) ; options supplémentaires de httpd ; réorganisation et renommage des modules ; nouveaux modules ; autres changements mineurs. Numéros de version Tout d abord, commençons par un petit passage en revue des numéros de version. Avant la version 2.0, la numérotation des versions du serveur web Apache ne revêtait aucune signification particulière. La gamme 1.3 a perduré depuis sa sortie initiale en 1997 et chaque nouveau numéro de version indiquait simplement 2
des évolutions par rapport au précédent. Mais, la progression du numéro de version était la même, quelle que fut l importance des changements. Depuis la version 2.0, Apache httpd utilise un nouveau modèle de numérotation, plus proche de celui employé par les projets Open Source. En bref, les numéros pairs désignent une version stable, à laquelle seules des corrections de bogues et des fonctionnalités validées sont ajoutées, et les numéros impairs représentent les versions de développement, avec des modifications importantes et des essais de nouvelles fonctionnalités. Ainsi, les numéros de la forme 2.0.x désignent la sortie initiale de la version 2.x, avec quelques fonctionnalités et corrections de bogues ajoutées avec le temps. Le développement de nouvelles fonctionnalités se fait dans la branche 2.1, avec une publication des résultats dans la version 2.2.0. Les versions 2.2.x sont les dernières productions stables du logiciel. Toutes les évolutions importantes se font désormais dans la branche 2.3. La branche 2.3 deviendra la version 2.4.0 lorsqu elle sera déclarée complète et stable. Quoiqu il en soit, la famille des versions 1.3 continue son chemin et sa mise au rencart n est pas prévue de sitôt. De nouvelles versions 1.3 seront produites tant qu il restera des utilisateurs de cette version tout au moins tant qu ils seront suffisamment nombreux. Les nouvelles sorties dans la branche 1.3 concernent principalement des corrections de bogues et des améliorations de la sécurité. Toutes les nouvelles fonctionnalités arrivent dans l arborescence 2.x. Ce n est pas vraiment une question de stratégie, mais plutôt la manifestation d un plus grand intérêt pour l architecture de la version 2.x. C est donc sur cet environnement que se concentre le travail des développeurs. Le développement Open Source se passe ainsi. Les contributeurs dépensent de l énergie sur les parties qui les intéressent, les autres ayant tendance à être laissées de côté. Cependant, l équipe de développement du serveur web s est mise d accord pour continuer à assurer la sécurisation et la stabilité de la version 1.3. Elle produit donc des mises à jour afin que ce soit bien le cas. 3
Au moment de l écriture de ce, il existe trois versions du serveur web Apache. La version 1.3.37 est la dernière de la branche 1.3. La version 2.0.59 est la dernière de la famille des versions 2.0. La version 2.2.4 est la dernière de la famille des versions 2.2. Par ailleurs, la version 2.3 contient les derniers développements en cours. Versions 2.0 et 2.2 Alors que les modifications architecturales entre les versions 1.3 et 2.0 sont importantes, très peu de chose les différencie d un point de vue fonctionnel. Cet état de fait, ainsi que quelques autres facteurs, ont conduit à une très lente adoption de la version 2.0. Il a fallu plus de deux ans après la sortie initiale de cette version pour qu un nombre d utilisateurs significatif passent de la 1.3 à la 2.0. La version 2.2, quant à elle, offre plusieurs fonctionnalités nouvelles, ainsi que quelques améliorations de la syntaxe de configuration. Cela en fait une alternative de choix à la 2.0 et son adoption sera certainement beaucoup plus rapide que ce ne fut le cas de la version 2.0. Bien entendu, cette migration se passera d autant mieux que vous comprendrez les changements effectués et ce qu ils peuvent vous apporter. Fichiers de configuration Dès la première installation de la version 2.2, vous constaterez immédiatement que les fichiers de configuration ont été réorganisés. À la place d un seul fichier de configuration monolithique (httpd.conf), vous trouverez désormais un fichier de configuration principal (toujours nommé httpd.conf) et plusieurs fichiers spécialisés, plus petits et réservés à des options de configuration moins communes. Ces fichiers spécialisés se trouvent dans le sous-répertoire extra/ du répertoire principal conf/. Pour activer les paramètres contenus dans ces fichiers, vous devez retirer les commentaires correspondants dans le fichier principal. httpd.conf contient les lignes suivantes : # Server-pool management (MPM specific) #Include conf/extra/httpd-mpm.conf 4
# Multi-language error messages #Include conf/extra/httpd-multilang-errordoc.conf # Fancy directory listings #Include conf/extra/httpd-autoindex.conf # Language settings #Include conf/extra/httpd-languages.conf # User home directories #Include conf/extra/httpd-userdir.conf # Real-time info on requests and configuration # Include conf/extra/httpd-info.conf # Virtual hosts # Include conf/extra/httpd-vhosts.conf # Local access to the Apache HTTP Server Manual # Include conf/extra/httpd-manual.conf # Distributed authoring and versioning (WebDAV) # Include conf/extra/httpd-dav.conf # Various default settings #Include conf/extra/httpd-default.conf # Secure (SSL/TLS) connections #Include conf/extra/httpd-ssl.conf 5
Dans les fichiers de configuration d Apache, tous les chemins sont relatifs à la racine du serveur (ServerRoot). Si vous avez installé le serveur Apache dans /usr/local/apache2, une directive Include faisant référence à conf/extra/httpd-manual.conf désigne en réalité le fichier /usr/local/apache2/conf/extra/httpd-manual.conf. Dans la suite de ce, nous supposerons qu Apache est installé dans /usr/local/apache2. Nous lèverons les ambiguïtés sur les chemins de fichiers uniquement en cas de nécessité. En retirant le symbole de commentaire (#) devant une ligne Include, vous activez les paramètres contenus dans le fichier.conf référencé. Par exemple, si vous décommentez la directive Include httpd_manual.conf, la documentation du serveur web Apache devient disponible par l URL http://votre.serveur.fr/manual. La réorganisation des fichiers de configuration répond à l augmentation de la taille et de la complexité du fichier de configuration unique. Elle conduit également à une plus grande facilité de compréhension et de gestion de la configuration. Voici la description des fichiers du sous-répertoire extra/. httpd-autoindex.conf Les directives de ce fichier contrôlent la génération automatique de la liste du contenu d un répertoire qui ne contient pas de fichier index.html ou tout autre fichier non mentionné dans DirectoryIndex. Par défaut, ces directives activent la génération de la liste des fichiers du répertoire des icônes et attribuent des icônes à différents types de fichiers. Vous devez explicitement autoriser l affichage du contenu d un répertoire précis pour que ces paramètres aient un effet, à l exception du répertoire des icônes, dont la génération de l index est, par tradition, toujours autorisée. Il n existe aucune raison particulière à cela, outre le fait qu il a en toujours été ainsi et que cela s avère pratique pour les démonstrations. Pour autoriser l affichage du contenu du répertoire /var/www/files, vous devez ajouter les lignes suivantes à votre fichier de configuration : 6