Serveur Apache HTTP Version 2.4

Ce document d�crit ce qu'est un Module Multi-Processus, ainsi que la mani�re dont ces modules sont utilis�s par le serveur HTTP Apache.
Introduction
MPM par d�faut
Compiler un module MPM en tant que module
statique
Compiler un module MPM en tant que module
DSO (Dynamic Shared Object)La conception du serveur HTTP Apache en fait un serveur web puissant et flexible pouvant fonctionner sur une tr�s grande vari�t� de plateformes et toute une gamme d'environnements diff�rents. Plateformes diff�rentes et environnements diff�rents signifient souvent fonctionnalit�s diff�rentes, ou utilisation de diff�rentes m�thodes pour impl�menter la m�me fonctionnalit� le plus efficacement possible. Apache httpd s'est toujours accomod� d'une grande vari�t� d'environnements gr�ce � sa conception modulaire. Cette conception autorise le webmaster � choisir quelles fonctionnalit�s seront incluses dans le serveur en s�lectionnant les modules � charger soit � la compilation, soit � l'ex�cution.
Le serveur HTTP Apache 2.0 a �tendu cette conception modulaire aux fonctions les plus �l�mentaires d'un serveur web. Le serveur est fourni avec une vari�t� de Modules Multi-Processus (MPMs) qui sont responsables de l'association aux ports r�seau de la machine, acceptent les requ�tes, et se chargent de r�partir ces derni�res entre les diff�rents processus enfants.
L'extension de la conception modulaire � ce niveau du serveur comporte deux avantages importants :
mpm_winnt peut utiliser les fonctionnalit�s r�seau
natives � la place de la couche POSIX utilis�e par
Apache httpd 1.3. Cet avantage s'�tend aussi aux syst�mes d'exploitation
qui impl�mentent des MPMs sp�cialis�s.worker ou event, tandis que les sites
qui privil�gient la stabilit� ou la compatibilit� avec des logiciels
plus anciens peuvent utiliser un module comme
prefork.Du point de vue de l'utilisateur, les MPMs ne sont pas diff�rents des autres modules Apache httpd. La principale diff�rence r�side dans le fait qu'un et un seul MPM � la fois doit �tre charg� lorsque le serveur s'ex�cute. La liste des MPMs disponibles est fournie dans l'index des modules.
La table suivante fournit la liste des MPMs par d�faut pour divers syst�mes d'exploitation. Il s'agit du MPM qui sera utilis� si vous n'en sp�cifiez pas un autre � la compilation.
| Netware | mpm_netware |
| OS/2 | mpmt_os2 |
| Unix | prefork, worker,
ou event, selon les possibilit�s de la plate-forme |
| Windows | mpm_winnt |
Ici, 'Unix' sous-entend les syst�mes d'exploitation de type Unix, comme Linux, BSD, Solaris, Mac OS X, etc...
Dans le cas des syst�mes d'exploitation de type Unix, le choix du MPM � installer est orient� par deux questions :
1. Est-ce que le syst�me supporte les threads ?
2. Est-ce que le syst�me supporte le polling thread-safe (et en particulier les fonctions kqueue et epoll) ?
Si la r�ponse aux deux questions est 'oui', le MPM par d�faut sera
event.
Si la r�ponse � la premi�re question est 'oui', et la r�ponse � la
deuxi�me 'non', le MPM par d�faut sera worker.
Si la r�ponse aux deux questions est 'non', le MPM par d�faut sera
prefork.
En pratique, cela signifie que le MPM par d�faut sera presque
toujours event car tous les syst�mes d'exploitation
modernes satisfont aux deux conditions.
Les modules MPM peuvent �tre compil�s en tant que modules statiques sur toutes les plates-formes. A la compilation d'Apache, un seul module MPM doit �tre choisi pour �tre compil� et li� avec le serveur. La recompilation du serveur sera donc n�cessaire si vous souhaitez changer de module MPM.
Pour choisir un module MPM autre que le MPM par d�faut,
utiliser l'argument
--with-mpm=NOM du script
configure. NOM est le nom
du MPM d�sir�.
Une fois le serveur compil�, il est possible de savoir quel MPM
a �t� choisi � l'aide de la commande ./httpd -l.
Cette commande fournit la liste de tous les modules compil�s
avec le serveur, y compris le MPM.
Sous Unix et les plates-formes similaires, les modules MPM
peuvent �tre compil�s en tant que modules DSO et charg�s
dynamiquement dans le serveur comme tout module DSO. Compiler les
modules MPM en tant que modules DSO permet de changer de MPM en
modifiant la directive LoadModule concern�e, sans avoir �
recompiler le serveur.
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
Toute tentative de charger plusieurs modules MPM via la directive
LoadModule emp�chera le
serveur de d�marrer et affichera l'erreur suivante :
AH00534: httpd: Configuration error: More than one MPM
loaded.
Cette fonctionnalit� est activ�e via l'option
--enable-mpms-shared du script
configure. Si on ajoute l'argument
all, tous les modules MPM disponibles sur la
plate-forme consid�r�e seront install�s. Cet argument peut aussi
contenir une liste de modules MPM � installer.
Le module MPM par d�faut, s�lectionn� automatiquement ou sp�cifi�
via l'option --with-mpm du script
configure, sera charg� via une directive
LoadModule du fichier de
configuration du serveur g�n�r�. Pour choisir un autre module MPM,
vous devrez donc modifier cette directive