Guide de mise à jour d'Apache
1.
Mise à jour depuis la version <2.2.6-r4
Les ebuilds Apache ont pendant très longtemps utilisé
/etc/apache2/apache2-builtin-mods pour sélectionner les modules
intégrés lors la compilation. Cependant, ce comportement a plusieurs
désavantages :
-
Il est impossible de sélectionner les modules intégrés lors de l'emerge
initial.
-
Portage ne sait pas quels modules ont été installés. Ceci est
particulièrement gênant pour les paquets binaires.
-
Portage essaiera d'écraser apache2-builtin-mods à chaque mise à
jour.
Afin de rectifier cette situation,
/etc/apache2/apache2-builtin-mods est devenu désuet et a été
remplacé par la nouvelle variable USE_EXPAND APACHE2_MODULES. Pour
convertir votre sélection de modules au nouveau format, utilisez la commande
suivante :
Exemple de code 1.1 : Convertir apache2-builtin-mods en APACHE2_MODULES |
$ echo APACHE2_MODULES=\"$(sed '/^mod_/s/mod_\(.*\)\s\+\(shared\|static\)/\1/;t n;d;:n' /etc/apache2/apache2-builtin-mods)\" >> /etc/make.conf
# rm /etc/apache2/apache2-builtin-mods
# emerge -uva '>=www-servers/apache-2.2.6-r4'
|
En plus de la nouvelle variable APACHE2_MODULES, les options USE locales
ont été nettoyées :
-
Toutes les options USE MPM ont été déplacées dans la variable
USE_EXPAND APACHE2_MPMS
-
no-suexec est maintenant suexec
-
static-modules est maintenant static
Pour une description détaillée des anciennes et nouvelles options USE
correspondantes, lisez plus bas.
2.
Mise à jour depuis la version <2.0.52-r3
Introduction
La situation d'Apache et de ses modules dans Gentoo devenait vraiment
insupportable. De nombreux problèmes ont rendu le support et la maintenance très
difficiles pour l'équipe responsable d'Apache :
-
La configuration par défaut venant avec Gentoo était vraiment trop
différente de la configuration par défaut usuelle à laquelle la plupart des
utilisateurs s'attendent.
-
De nombreux modules utilisaient du code similaire, mais tous faisaient les
choses à leur manière.
-
La plupart des modules n'étaient pas maintenus correctement - principalement
à cause du grand nombre de modules disponibles.
- Les modules n'avaient pas de standard de configuration.
-
Certains modules fonctionnaient avec les deux versions d'Apache, mais les
ebuilds ne savaient pas le gérer.
-
Des options disponibles d'Apache ne l'étaient pas pour les utilisateurs de
Gentoo (par exemple les MPM).
- Les bogues pour Apache s'accumulaient.
Ce document détaille comment effectuer la mise à jour sans casser votre système.
Si vous êtes développeur ou voulez savoir ce que nous avons changé ou comment
les ebuilds doivent être modifiés pour tirer parti de notre eclass, alors jetez
un œil à la Documentation
Apache pour les développeurs.
Instructions pour la mise à jour
Il y a eu de nombreux changements dans la manière de fonctionner d'Apache au
sein de Gentoo. Chaque paquet qui est directement relié à Apache doit être mis à
jour et certaines choses qui fonctionnaient avant ne fonctionneront plus.
D'abord, vous devez déterminer quels paquets vous devez mettre à jour. Vous
pouvez faire cela en utilisant l'outil equery, appartenant au paquet
app-portage/gentoolkit.
Exemple de code 2.1 : Trouver les paquets à mettre à jour |
$ equery depends www-servers/apache
[ Searching for packages depending on www-servers/apache... ]
dev-db/phpmyadmin-2.5.6
dev-php/mod_php-4.3.10
dev-php/phpsysinfo-2.1-r2
net-www/mod_bandwidth-2.0.5
net-www/mod_layout-4.0.1a
net-www/mod_mp3-0.40
net-www/mod_random-2.0
net-www/mod_throttle-3.1.2-r1
www-apache/mod_ldap_userdir-1.1.4
www-apache/mod_loopback-1.04
www-apache/mod_watch-3.18
www-apps/viewcvs-0.9.2_p20030430
|
Important :
Les paquets que vous avez installés peuvent être bien différents de cette liste,
donc assurez-vous de bien lancer cette commande sur votre système.
|
Attention :
Certains modules et paquets dépendent d'Apache et n'ont pas encore été mis à
jour. Veuillez faire une recherche sur
bugzilla pour chaque paquet important que vous utilisez avec Apache.
|
De nombreuses applications web ne sont pas concernées du fait qu'elles
utilisent l'eclass webapp qui s'occupe de les installer correctement. Il
est conseillé de vérifier l'existence d'une nouvelle révision.
Comme nous avons ajouté de nouvelles options à la variable USE, il peut être
intéressant d'y jeter un œil et d'ajouter ce qui est nécessaire au fichier
/etc/portage/package.use. Consultez les
options USE d'Apache pour plus d'informations.
Exemple de code 2.2 : Vérifier les options USE et recompiler |
# emerge --pretend --verbose --update --newuse --deep apache subversion \
mod_php mod_bandwidth mod_layout mod_ldap_userdir mod_loopback mod_mp3 \
mod_random mod_throttle mod_watch
# emerge --verbose --update --newuse --deep apache subversion mod_php \
mod_bandwidth mod_layout mod_ldap_userdir mod_loopback mod_mp3 mod_random \
mod_throttle mod_watch
# emerge --ask --verbose --update --newuse --deep world
|
Maintenant, il faut reconfigurer Apache et ses modules. Commencez par utiliser
etc-update ou dispatch-conf pour mettre à jour les fichiers de
/etc/init.d et /etc/conf.d. Vous remarquerez que les
fichiers de configuration d'Apache ne s'affichent pas lors de la mise à jour,
car ils ont été déplacés.
Si vous avez apporté des modifications aux anciens apache.conf et
commonapache.conf par défaut, il vous faudra les transposer au
fichier /etc/apache{|2}/httpd.conf. Les fichiers de configuration
des modules et des hôtes virtuels ont aussi été déplacés : ils se trouvent
maintenant respectivement dans /etc/apache2/modules.d et
/etc/apache2/vhosts.d .
Une fois le transfert de vos modifications vers les nouveaux fichiers de
configuration effectué, il vous faudra effacer les anciens fichiers (ou bien les
déplacer dans un endroit sûr). Le nouveau script
/etc/init.d/apache{|2} vérifie l'existence de ces fichiers et ne
vous laisse pas lancer Apache tant qu'ils n'ont pas été enlevés pour signifier
que vous avez reconfiguré Apache à l'aide des nouveaux fichiers.
Note :
De nombreux modules qui étaient activés par défaut ne le sont plus. Si ce sont
des modules internes à Apache, alors décommentez la ligne appropriée dans
httpd.conf. Si ce sont des modules externes, recherchez dans le fichier .conf du
module la balise IfDefine et ajoutez le nom au fichier
/etc/conf.d/apache{|2} pour l'activer.
|
Vous pouvez maintenant relancer Apache.
Exemple de code 2.3 : Redémarrer Apache |
# /etc/init.d/apache stop
# /etc/init.d/apache start
|
Si vous rencontrez des problèmes, jetez un œil au Apache Troubleshooting Guide et
si ça ne résoud pas votre problème, veuillez le rapporter sur le Bugzilla Gentoo. Veuillez préciser les
modules activés et, si vous utilisez Apache 2, les options USE MPM que vous avez
utilisées lors de la compilation. Vous pouvez aussi vous connecter à
#gentoo-apache sur irc.freenode.net pour plus
d'assistance.
3.
Options de la variable USE affectant Apache <2.2.6-r4
Des options de la variable USE sont particulières à Apache et ses modules.
Apache supporte aussi plusieurs options plus génériques telles que ssl,
mais leur effet sur Apache n'est guère différent de celui qu'elles ont sur les
autres paquets, elles ne sont donc pas énumérées ici. Lancez emerge --verbose
--pretend apache pour voir une liste complète des options supportées.
| Option USE |
Description |
| apache2 |
Doit toujours être activée si on utilise Apache 2, et être désactivée dans
le cas de l'utilisation d'Apache 1.3. L'eclass s'en sert pour déterminer de
quelle version d'Apache on doit dépendre.
|
| debug |
Active un crochet qui autorise des modules externes à se greffer et faire
quelque chose après qu'un processus fils ait planté. Il existe déjà deux
modules, mod_whatkilledus and mod_backtrace qui utilisent ce
crochet.
|
| doc |
Installe le manuel Apache et sa configuration. |
| ldap |
Installe mod_ldap et mod_auth_ldap/mod_authnz_ldap.
|
| ssl |
Installe mod_ssl. |
| mpm-itk |
Compile le MPM itk. |
| mpm-leader |
Compile le MPM leader.
|
| mpm-peruser |
Compile le MPM peruser.
|
| mpm-prefork |
Compile le MPM prefork.
|
| mpm-threadpool |
Compile le MPM threadpool.
|
| mpm-worker |
Compile le MPM worker.
|
| static-modules |
Lie statiquement les modules au binaire d'Apache, de manière à ce que
LoadModule ne soit pas nécessaire pour charger les modules de base d'Apache.
|
Note :
Bien qu'il y ait beaucoup d'options USE mpm-*, elles sont mutuellement
exclusives. Il ne faut donc en activer qu'une seule. (Si aucune n'est activée,
mpm-prefork ou mpm-worker sera utilisée, selon que l'option USE
threads soit activée ou non).
|
4.
Options USE affectant Apache 2.2.6-r4 et supérieur
Avec l'arrivée de la variable APACHE2_MODULES, un nettoyage général des
options USE fut nécessaire. Le tableau suivant liste les options USE
actuellement supportées pour apache-2.2.6-r4 et supérieurs, ainsi que
leurs équivalents dans les versions précédentes.
| Option USE |
Ancienne option USE |
Description |
| debug |
debug |
Active un crochet qui autorise des modules externes à se greffer et faire
quelque chose après qu'un fils ait planté. Il existe déjà deux modules,
mod_whatkilledus et mod_backtrace, qui utilisent ce crochet.
|
| doc |
doc |
Installe le manuel Apache et sa configuration. |
| ldap |
ldap |
Installe mod_ldap et mod_authnz_ldap. |
| ssl |
ssl |
Installe mod_ssl. |
| static |
static-modules |
Lie statiquement les modules au binaire d'Apache, de manière à ce que
LoadModule ne soit pas nécessaire pour charger les modules de base d'Apache.
|
| suexec |
no-suexec |
Installe mod_suexec et le binaire d'aide suexec. |
| threads |
threads |
Sélectionne le MPM par défaut si aucun n'a été défini dans APACHE2_MPMS.
|
Le tableau suivant liste les options de la variable APACHE2_MPMS
actuellement supportées pour apache-2.2.6-r4 et leur précédente option
USE locale correspondante.
| Option |
Ancienne option USE |
Description |
| event |
mpm-event |
Une variante expérimentale du MPM standard worker. |
| itk |
mpm-itk |
Autorise le lancement de chaque hôte virtuel sous un uid et un gid séparés.
|
| peruser |
mpm-peruser |
Peruser est une implémentation fonctionnelle du MPM perchild autorisant le
lancement de chaque processus fils Apache avec son propre utilisateur et
groupe, chacun gérant son propre ensemble d'hôtes virtuels.
|
| prefork |
mpm-prefork |
Implémente un serveur web non multitâche, avec séparation préalable du
processus.
|
| worker |
mpm-worker |
MPM implémentant un serveur web hybride multitâche et multiprocessus.
|
Le tableau suivant liste les options de la variable APACHE2_MODULES
actuellement supportés pour apache-2.2.6-r4.
| Option |
Description |
| actions |
Permet l'exécution de scripts CGI en fonction de leur type de média ou de la
méthode de requête.
|
| alias |
Permet de rendre accessible certaines parties du système de fichiers de
l'hôte dans l'arbre de documents, et de rediriger les URL
|
| asis |
Envoie des fichiers contenant leurs propres entêtes HTTP |
| auth_basic |
Authentification simple |
| auth_digest |
Authentification d'utilisateurs utilisant une authentification par hachage MD5
|
| authn_alias |
Fournit la possibilité de créer une authentification étendue basée sur les
fournisseurs d'authentification présents
|
| authn_anon |
Autorise l'accés utilisateur anonyme à des zones authentifiées |
| authn_dbd |
Authentification utilisateur utilisant une base de données SQL |
| authn_dbm |
Authentification utilisateur utilisant des fichiers DBM |
| authn_default |
Module de rétrogradage d'authentification |
| authn_file |
Authentification utilisateur utilisant des fichiers texte |
| authz_dbm |
Autorisation de groupe utilisant des fichiers DBM |
| authz_default |
Module de rétrogradage d'autorisation |
| authz_groupfile |
Autorisation de groupe utilisant des fichiers texte |
| authz_host |
Autorisation de groupe basée sur l'hôte (nom ou adresse IP) |
| authz_owner |
Autorisation basée sur le propriétaire des fichiers |
| authz_user |
Autorisation d'utilisateur |
| autoindex |
Génère automatiquement les index de répertoire, de façon similaire à la
commande Unix ls
|
| cache |
Mise en cache du contenu associé aux URIs |
| cern_meta |
Sémantique des métafichiers httpd du CERN |
| charset_lite |
Spécifie le jeu de caractères de traduction ou recodage |
| dav |
Fonctionnalité de gestion distribuée de publication et de contrôle de
version (WebDAV, Web-based Distributed Authoring and Versioning)
|
| dav_fs |
Fournit un système de fichiers pour mod_dav |
| dav_lock |
Module générique de verrouillage pour mod_dav |
| dbd |
Gestion des connexions aux bases de données SQL |
| deflate |
Compresse le contenu avant son envoi au client |
| dir |
Fournit la redirection de « slash final » et le service des
fichiers d'index de répertoire
|
| disk_cache |
Stockage du cache du contenu associé aux URIs |
| dumpio |
Transfert toutes les E/S vers le log d'erreur de la façon désirée |
| env |
Modifie l'environnement transmis aux scripts CGI et aux pages SSI |
| expires |
Génération des entêtes HTTP Expires et Cache-Control selon les critères
spécifiés par l'utilisateur
|
| ext_filter |
Passe le corps de la réponse à travers un programme externe avant son envoi
au client
|
| file_cache |
Mise en cache mémoire d'une liste statique de fichiers |
| filter |
Module de configuration pour le filtre intelligent sensible au contexte
|
| headers |
Customisation des requêtes HTTP et des entêtes des réponses |
| ident |
Vérification ident selon la RFC 1413 |
| imagemap |
Calcul des imagemap côté serveur |
| include |
Documents HTML parcourus par le serveur (Server Side Includes) |
| info |
Fournit une vue complète de la configuration du serveur |
| log_config |
Log des requêtes faîtes sur le serveur |
| log_forensic |
Log forensique des requêtes faîtes sur le serveur |
| logio |
Log du nombre d'octets en entrée et sortie pour chaque requête |
| mem_cache |
Mise en cache du contenu associé aux URIs |
| mime |
Associe les extensions des fichiers demandés avec le comportement du fichier
(gestion et filtres) et son contenu (type MIME, langue, jeu de caractères
et encodage)
|
| mime_magic |
Ddétermine le type MIME d'un fichier en regardant quelques octets de son
contenu
|
| negotiation |
Fournit la négociation de contenu |
| proxy |
Serveur proxy/passerelle HTTP/1.1 |
| proxy_ajp |
Module de support AJP pour mod_proxy |
| proxy_balancer |
Extension de mod_proxy pour la répartition de charge |
| proxy_connect |
Extension de mod_proxy pour la prise en charge des requêtes CONNECT |
| proxy_ftp |
Module de support FTP pour mod_proxy |
| proxy_http |
Module de support HTTP pour mod_proxy |
| rewrite |
Fournit un mécanisme de réécriture basé sur des règles pour réécrire les
URLs à la volée
|
| setenvif |
Autorise la définition de variables d'environnement basée sur les
caractéristiques de la requête
|
| speling |
Tente de corriger les erreurs des URLs que les utilisateurs auraient entré
en ignorant la capitalisation et en autorisant au plus une faute
|
| status |
Fournit des informations à propos de l'activité et des performances du
serveur
|
| unique_id |
Fournit une variable d'environnement avec un identifiant unique pour chaque
requête
|
| userdir |
Répertoires spécifiques aux utilisateurs |
| usertrack |
Log de l'activité des utilisateurs sur un site |
| version |
Configuration dépendante de la version |
| vhost_alias |
Fournit le support pour la configuration dynamique de l'hébergement virtuel
de masse
|
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|