Serveur Apache HTTP Version 2.4
Le script configure
permet de configurer
l'arborescence des sources afin de compiler et installer le serveur
HTTP Apache sur votre plate-forme spécifique. De nombreuses options
vous permettent de compiler un serveur correspondant à vos propres
besoins.
Ce script, situé dans le répertoire racine de la distribution des sources, ne concerne que la compilation sur les systèmes Unix et apparentés. Pour les autres plates-formes, voir la documentation spécifique de ces dernières.
Vous devez appeler le script configure
depuis le
répertoire racine de la distribution.
./configure [OPTION]...
[VARIABLE=VALEUR]...
Pour définir des variables d'environnement (par exemple
CC
,CFLAGS
, etc...), utilisez la clause
VARIABLE=VALEUR
. Voir ci-dessous pour la description de quelques variables
usuelles.
Les options suivantes affectent le comportement du script
configure
.
-C
--config-cache
--cache-file=config.cache
--cache-file=FICHIER
-h
--help [short|recursive]
short
, seules les options spécifiques à ce paquet
seront affichées. L'argument recursive
permet
d'afficher l'aide de tous les paquets inclus.-n
--no-create
configure
s'exécute normalement, mais
ne crée pas les fichiers résultants. Ceci permet de vérifier les
résultats des tests avant de générer les fichiers makefile pour la
compilation.-q
--quiet
checking ...
ne sont pas affichés au
cours du processus de configuration.--srcdir=DIR
configure
, ou le répertoire parent.--silent
--quiet
Ces options permettent de spécifier le répertoire d'installation. L'arborescence de l'installation dépend de l'organisation (layout) sélectionnée.
--prefix=PREFIX
/usr/local/apache2
.--exec-prefix=EPREFIX
Par défaut, make install
va installer tous les
fichiers dans /usr/local/apache2/bin
,
/usr/local/apache2/lib
, etc... Vous pouvez cependant
spécifier un préfixe d'installation autre que
/usr/local/apache2
en utilisant l'option
--prefix
(par exemple --prefix=$HOME
).
--enable-layout=LAYOUT
config.layout
contient de nombreux exemples de
configurations, et vous pouvez créer vos propres configurations
personnalisées en vous basant sur ces exemples. Les différentes
organisations contenues dans ce fichier sont enregistrées sous
forme de sections <Layout
FOO>...</Layout>
et référencées dans ce cas par
le nom FOO
. L'organisation par défaut
est Apache
.Pour une définition plus précise des répertoires
d'installation, utilisez les options ci-dessous. Notez que les
répertoires par défaut sont définis par autoconf
, et
que leurs valeurs sont écrasées par les valeurs correspondantes
définies lors du choix de l'organisation des répertoires
(layout).
--bindir=DIR
htpasswd
, dbmmanage
,
etc..., et destinés aux administrateurs du site. Par défaut,
DIR est défini à
EPREFIX/bin
.--datadir=DIR
datadir
est défini à
PREFIX/share
. Cette option est fournie
par autoconf et actuellement inutilisée.--includedir=DIR
includedir
est défini à
EPREFIX/include
.--infodir=DIR
infodir
est défini à
PREFIX/info
. Cette option est
actuellement inutilisée.--libdir=DIR
libdir
est défini à
EPREFIX/lib
.--libexecdir=DIR
libexecdir
est défini à
EPREFIX/modules
.--localstatedir=DIR
localstatedir
est
défini à PREFIX/var
. Cette option est
fournie par autoconf
et est actuellement
inutilisée.--mandir=DIR
mandir
est défini à
EPREFIX/man
.--oldincludedir=DIR
oldincludedir
est défini à
/usr/include
. Cette option est fournie par
autoconf
et est actuellement inutilisée.--sbindir=DIR
httpd
, apachectl
,
suexec
, etc..., qui sont nécessaires à
l'exécution du serveur HTTP Apache. Par défaut,
sbindir
est défini à
EPREFIX/sbin
.--sharedstatedir=DIR
sharedstatedir
est défini à
PREFIX/com
. Cette option est fournie par
autoconf
et est actuellement inutilisée.--sysconfdir=DIR
httpd.conf
, mime.types
, etc... dans
DIR. Par défaut, sysconfdir
est défini à
PREFIX/conf
.Ces options sont utilisées pour la cross-compilation du serveur HTTP Apache afin de pouvoir l'utiliser sur un autre système. Dans le cas général où la compilation et l'exécution du serveur ont lieu sur le même système, ces options ne sont pas utilisées.
--build=BUILD
config.guess
.--host=HOST
--target=TARGET
autoconf
et n'est pas requise par le serveur HTTP
Apache.Ces options vous permettent de configurer avec précision les fonctionnalités de votre futur serveur HTTP.
D'une manière générale, vous pouvez utiliser la syntaxe suivante pour activer ou désactiver une fonctionnalité :
--disable-FONCTIONNALITE
--enable-FONCTIONNALITE=no
.--enable-FONCTIONNALITE[=ARG]
yes
.--enable-MODULE=shared
--enable-MODULE=static
--enable-foo
, et si
foo n'existe pas, configure
ne le
signalera pas ; vous devez donc prendre soin de taper les
options correctement.
La plupart des modules sont compilés par défaut et ils doivent être
désactivés de manière explicite ou via le mots-clé few
(voir
ci-dessous --enable-modules
,
--enable-mods-shared
et --enable-mods-static
pour une explication plus détaillée), ou
--enable-modules=none
pour les désactiver tous.
Par défaut, les autres modules ne sont pas compilés et doivent
être activés explicitement, ou en utilisant les mots-clés
all
ou reallyall
pour être disponibles.
Pour déterminer quels modules sont compilés par défaut,
exécutez la commande ./configure -h
ou
./configure --help
, et consultez les Optional
Features
. Par exemple, supposons que vous soyez intéressé
par les modules mod_example1
et
mod_example2
, et que vous voyiez ceci :
Optional Features: ... --disable-example1 example module 1 --enable-example2 example module 2 ...
Le module mod_example1
est ici activé par
défaut, et vous devez spécifier --disable-example1
si vous ne voulez pas le compiler. Par contre, le module
mod_example2
est désactivé par défaut, et vous
devez spécifier --enable-example2
si vous voulez le
compiler.
Les Modules Multi-Processus, ou MPMs, constituent le coeur du serveur. Un seul MPM doit être actif pour que le serveur puisse fonctionner. Vous trouverez la liste des MPMs disponibles à module index page.
Les MPMs peuvent être compilés en tant que modules DSO pour un chargement dynamique, ou liés statiquement avec le serveur, et sont activés via les options suivantes :
--with-mpm=MPM
Sélectionne le MPM par défaut pour votre serveur. Si les
MPMs sont compilés en tant que modules DSO (voir
--enable-mpms-shared
), cette option spécifie le
MPM qui sera chargé par défaut selon le fichier de
configuration. Dans le cas contraire, cette option spécifie le
seul MPM disponible qui sera lié statiquement avec le
serveur.
Si cette option est omise, c'est le MPM par défaut pour votre système d'exploitation qui sera utilisé.
--enable-mpms-shared=Liste de MPM
Définit une liste de MPMs à compiler en tant que modules
dynamiquement partagés (DSO). Un de ces modules doit être
chargé dynamiquement via la directive LoadModule
.
Liste de MPM est une liste, entourée d'apostrophes, de noms de MPM séparés par des espaces. Par exemple :
--enable-mpms-shared='prefork worker'
Vous pouvez aussi utiliser le mot-clé all
, ce
qui aura pour effet de spécifier tous les MPMs qui supportent
le chargement dynamique sur la plate-forme considérée, et de
les compiler en tant que modules DSO. Par exemple :
--enable-mpms-shared=all
Pour ajouter des modules tiers, utilisez les options suivantes :
--with-module=type-module:fichier-module[,
type-module:fichier-module]
Ajoute un ou plusieurs modules tiers à la liste des
modules liés statiquement. Le fichier source du module
fichier-module sera recherché dans le sous-répertoire
type-module de l'arborescence des sources de votre
serveur HTTP Apache. S'il ne l'y trouve pas,
configure
considèrera fichier-module
comme un chemin de fichier absolu et essaiera de copier le
fichier source dans le sous-répertoire type-module.
Si ce sous-répertoire n'existe pas, il sera créé et un fichier
Makefile.in
standard y sera enregistré.
Cette option est conçue pour ajouter de petits modules externes ne comportant qu'un seul fichier source. Pour des modules plus complexes, vous devrez lire la documentation du fournisseur du module.
apxs
.--enable-maintainer-mode
--enable-mods-shared=LISTE-MODULES
Définit une liste de modules à activer et à compiler en
tant que modules dynamiques partagés. Cela signifie que ces
modules doivent être chargés dynamiquement en utilisant la
directive LoadModule
.
LISTE-MODULES est une liste, entourée
d'apostrophes, de noms de modules
séparés par des espaces. Les noms
des modules sont spécifiés sans le préfixe mod_
.
Par exemple :
--enable-mods-shared='headers rewrite dav'
Vous pouvez aussi utiliser les mots-clés reallyall
,
all
, most
et few
. Par
exemple,
--enable-mods-shared=most
va compiler la plupart des modules en tant que modules DSO,
--enable-mods-shared=few
ne compilera qu'un jeu de modules de base.
Le jeu par défaut correspond au mot-clé most
.
Les directives LoadModule
correspondant aux
différents modules choisis sont automatiquement générées dans
le fichier de configuration principal. Par défaut, toutes ces
directives sont mises en commentaire, sauf pour les modules
requis ou ceux explicitement sélectionnés par un argument
--enable-nom-module
du script configure. Vous
pouvez modifier le jeu de modules chargé en activant ou
désactivant les directives LoadModule
dans le fichier
httpd.conf
. En outre, les directives LoadModule
peuvent être activées
pour tous les modules compilés via l'option
--enable-load-all-modules
du script configure.
--enable-mods-static=MODULE-LIST
--enable-mods-shared
, à l'exception que les modules
seront liés statiquement. Cela signifie que les modules
spécifiés seront toujours disponibles au cours du fonctionnement
de httpd
. Ils n'ont pas besoin d'être chargés
via la directive LoadModule
.--enable-modules=MODULE-LIST
--enable-mods-shared
, et va aussi lier les modules
concernés dynamiquement. Le mot-clé spécial none
désactive la compilation de tous les modules.--enable-v4-mapped
--with-port=PORT
httpd
va écouter. Ce numéro de port est
utilisé lors de la génération du fichier de configuration
httpd.conf
. Sa valeur par défaut est 80.--with-program-name
httpd
.Ces options permettent de définir des paquets optionnels.
D'une manière générale, vous pouvez utiliser la syntaxe suivante pour définir un paquet optionnel :
--with-PAQUET[=ARG]
yes
.--without-PAQUET
--with-PAQUET=no
. Elle est
fournie par autoconf
mais n'est pas très utile pour
le serveur HTTP Apache.--with-apr=REP|FICHIER
configure
le chemin du script
apr-config
. Vous pouvez spécifier le chemin absolu
et le nom ou le répertoire d'installation de l'APR.
apr-config
doit se trouver dans ce répertoire ou
dans le sous-repertoire bin
.--with-apr-util=REP|FICHIER
configure
le chemin du script
apu-config
. Vous pouvez spécifier le chemin absolu
et le nom ou le répertoire d'installation des APU.
apu-config
doit se trouver dans ce répertoire ou
dans le sous-repertoire bin
.--with-ssl=REP
mod_ssl
a été activé,
configure
recherche une installation d'OpenSSL.
Vous pouvez définir le répertoire de la boîte à outils SSL/TLS à
la place.--with-z=REP
configure
recherche automatiquement une
bibliothèque zlib
installée si la configuration de
vos sources en nécessite une (par exemple lorsque
mod_deflate
est activé). Vous pouvez définir le
répertoire de la bibliothèque de compression à la place.De nombreuses fonctionnalités du serveur HTTP Apache, y compris
les directives RewriteMap
DBM de
mod_rewrite
et mod_authn_dbm
utilisent une base de données simple
de la forme clé/valeur pour une recherche rapide d'informations.
SDBM, inclus dans les APU, est donc toujours disponible. Si vous
souhaitez utiliser d'autres types de bases de données, utilisez
les options suivantes afin de les activer :
--with-gdbm[=chemin]
configure
va rechercher les fichiers d'en-têtes et
les bibliothèques d'une installation DBM GNU dans les chemins
standards. Avec un chemin explicite,
configure
recherchera les fichiers concernés dans
chemin/lib
et
chemin/include
. En fait,
chemin permet de spécifier plusieurs chemins
d'en-têtes et bibliothèques spécifiques en les séparant par des
caractères ':'.--with-ndbm[=chemin]
--with-gdbm
, mais recherche une
installation de New DBM.--with-berkeley-db[=chemin]
--with-gdbm
, mais recherche une
installation de Berkeley DB.Les options DBM sont fournies par les APU et passées en
paramètres à son script de configuration. Elles sont inutiles
lorsqu'on utilise des APU déjà installés définis par
--with-apr-util
.
Vous pouvez utiliser plusieurs implémentations DBM avec votre serveur HTTP. Le type DBM approprié sera choisi au cours de la configuration de l'exécution à chaque démarrage.
--enable-static-support
--enable-suexec
suexec
, qui vous permet de définir un uid et un
gid pour les processus lancés. N'utilisez cette option que
si vous maîtrisez toutes les implications en matière de sécurité
de l'exécution d'un binaire suid sur votre serveur.
D'autres options permettent de configurer
suexec
comme décrit ci-dessous.Il est possible de lier statiquement le binaire d'un programme support particulier en utilisant les options suivantes :
--enable-static-ab
ab
.--enable-static-checkgid
checkgid
.--enable-static-htdbm
htdbm
.--enable-static-htdigest
htdigest
.--enable-static-htpasswd
htpasswd
.--enable-static-logresolve
logresolve
.--enable-static-rotatelogs
rotatelogs
.suexec
Les options suivantes permettent de définir avec précision le
comportement du programme suexec
. Voir Configurer et installer suEXEC
pour plus de détails.
--with-suexec-bin
suexec
. La
valeur par défaut est --sbindir
(voir Définition précise des répertoires
d'installation).--with-suexec-caller
suexec
. Il est en général souhaitable que ce
soit le même que celui sous lequel httpd
s'exécute.--with-suexec-docroot
suexec
est
autorisé. La valeur par défaut est
--datadir/htdocs
.--with-suexec-gidmin
suexec
. La valeur par
défaut est 100.--with-suexec-logfile
suexec
. La valeur par défaut est
--logfiledir/suexec_log
.--with-suexec-safepath
PATH
pour les processus lancés par
suexec
. La valeur par défaut est
/usr/local/bin:/usr/bin:/bin
.--with-suexec-userdir
suexec
. Cette option est nécessaire si vous
souhaitez utiliser suexec
avec des
répertoires utilisateurs (définis via
mod_userdir
). La valeur par défaut est
public_html
.--with-suexec-uidmin
suexec
. La valeur par
défaut est 100.--with-suexec-umask
umask
pour les
processus lancés par suexec
. Il correspond
par défaut au masque défini par la configuration de votre
système.Certaines variables d'environnement permettent de modifier les
choix effectués par configure
, ou d'aider ce dernier à
trouver les bibliothèques et programmes possédant des noms et chemins
non standards.
CC
CFLAGS
CPP
CPPFLAGS
-Irépertoire-include
, si certains de vos
fichiers d'en-têtes se trouvent dans le répertoire non standard
répertoire-include.LDFLAGS
-Lrépertoire-lib
, si certaines de vos
bibliothèques se trouvent dans le répertoire non standard
répertoire-lib.