Compiler et installer
Ce document couvre la compilation et l'installation d'apache
sur les syst�me unix et unix-like seulement. Pour compiler et installer sous windows,
voir: Using Apache with Microsoft
Windows. Pour les autres plateformes, voir�la documentation platform
L�environnement de configuration et d�installation d�Apache 2.0 � chang� compl�tement depuis Apache 1.3. Apache 1.3 utilisait un jeu de scripts propri�taires pour une installation facile. Aujourd�hui, Apache 2.0 utilise libtool et autoconf pour cr�er un environnement qui ressemble � celui que l�on retrouve dans les autres projets OpenSource.
NN doit �tre remplac� avec le num�ro de version actuelle, et PREFIX doit �tre remplac� par le r�pertoire d�installation sur le syst�me. Si
PREFIX n�est pas sp�cifi�, le r�pertoire par d�faut est�:
/usr/local/apache2.
Chaque �tape de l�installation et de la compilation est d�crit plus en d�tails par la suite. Commen�ons par les pr�s requis pour compiler et installer Apache HTTPd.
![top]()
Les conditions suivantes sont requises pour la compilation d�Apache:
- Espace disque
Soyez sur que vous avez au moins 50 Mo au moins de libre temporairement sur votre disque. Apr�s l�installation d�Apache, il occupe approximativement 10 Mo.
La taille n�cessaire varie consid�rablement en fonction de vos choix de configuration et de modules.
- Compilateur ANSI-C et Compilation
Soyez sur que vous avez un compilateur ANSI-C install�. Le GNU C
compilateur (GCC) de Free Software Foundation (FSF)
est recommend�(la version 2.7.2 est bien). Si vous n�avez pas GCC, assurez vous que votre compilateur est compatible ANSI. De plus, votre PATH doit contenir des outils de base comme make.
- Conservation pr�cise de l�heure
Les �l�ments du protocole HTTP sont exprim�s par rapports � l�heure du jour (time of the day).
Le moment est donc venu d�installer des utilitaires de synchronisation de date et heure sur votre syst�me. Ntpdate ou xntpd sont souvent utilis�s dans le cas pr�sent, et sont bas�s sur le NTP (Network Time Protocol).
Des informations suppl�mentaire sont disponibles sur le newsgroup
comp.protocols.time.ntp
et sur le site officiel NTP
pour plus de d�tails sur les solutions NTP et les servers d�heure et date public.
- Perl 5
[OPTIONEL]
Pour le support de certains scripts comme
apxs ou dbmmanage (qui sont �crits en perl) l�interpr�teur Perl 5 est requis (les versions
5.003 and 5.004 sont bien). Si aucun interpr�teur n�est trouv� par le script `configure�, ce n�est pas alarmant. Vous pouvez continuer � compiler et installer Apache 2.0, seulement le support de ce type de script ne sera pas assur�. Si vous avez plusieurs interpr�teurs Perls install�s (peut �tre Perl 4 par d�faut sur le syst�me et Perl 5 par vous-m�me), alors, il est recommand� d�utiliser l�option �with-perl pour �tre sur que le bon interpr�teur est utilis� par ./configure.
![top]()
Apache peut �tre t�l�charg� sur le site Apache Software
Foundation download ou sur les sites mirroirs.
Les num�ros de version qui se terminent en alpha indiquent des versions en pr�-tests qui pourront ou ne pourront pas fonctionner. Les num�ros de versions qui se terminent en beta indiquent des releases plus stables qui n�cessitent encore des tests ou des corrections de bugs. Si vous d�sirez t�l�charger la meilleure version ��production�� d�Apache disponible, vous devez choisir la derni�re version sans alpha ni beta dans le nom de fichier.
Apr�s avoir rapatri� le fichier, et plus sp�cialement s�il provient d�un mirroir, il est important de verifier qu�il est complet et surtout non modifi�. Pour cela, vous devez tester le package avec la signature PGP. Deux proc�dures sont n�cessaires. Premi�rement, vous devez obtenir le fichier KEYS � partir du siteApache distribution. (Pour s�assurer que le fichier de KEYS n�a pas �t� modifi�, vous pouvez utiliser un fichier d�une version ant�rieure d�apache et importer les clefs d�un server de clefs public.) Les clefs sont import�es dans votre jetton personnel de clefs en utilisant les commandes suivantes (d�pend de votre version de pgp):
ou
La prochaine �tape est de tester le package avec les signatures PGP qui peuvent �tre obtenues sur le site main Apache. Le fichier de signature � un nom identique � celui du package avec l�extension .asc. Ensuite, vous pouvez verifier la distribution avec les commandes suivantes�(D�pendent encore de votre version de pgp):
$ pgp httpd-2_0_NN.tar.gz.asc
ou
$ gpg --verify httpd-2_0_NN.tar.gz.asc
Vous devriez recevoir un message comme
Good signature from user "Martin Kraemer
<[EMAIL PROTECTED]>".
Selon la relation de confiance contenue dans votre jetton, vous pouvez aussi recevoir un message vous avertissant que la relation de confiance entre la clefs et le signataire ne peut �tre v�rifi�e. Ce n�est pas un probl�me si vous avez confiance en l�authenticit� du fichier KEYS.
![top]()
Extraire les sources du serveur HTTPd Apache � partir du package est un simple probl�me de d�compression et de d�sarchivage:
$ gzip -d httpd-2_0_NN.tar.gz
$ tar xvf httpd-2_0_NN.tar
Ces commandes vont cr�er un nouveau r�pertoire dans le r�pertoire courant contenant les sources de la distribution. Vous devez aller dans ce r�pertoire avant de proc�der � la compilation.
![top]()
L��tape suivante permet de configurer les sources d�Apache pour des plateformes et exigences particuli�res avec le script configure inclus dans le r�pertoire racine de la distribution. (Les d�veloppeurs t�l�chargeant la version CVS du source d�Apache devront avoir autoconf et libtool install�s et devront lancer buildconf avant de proc�der aux �tapes suivantes. Ce ne sont pas n�cessairement des releases officielles.
Pour configurer les sources en utilisant toutes les options par d�faut, ex�cuter simplement ./configure. Pour changer les options par d�faut, configure accepte une multitude de variables et de lignes de commandes en options. Les variables d�environnement sont g�n�ralement plac�es avant la commande ./configure, alors que les autres options doivent �tre plac�es apr�s. L�option la plus importante est le pr�fixe d�emplacement (chemin) qui sera utilis� pour l�installation, car Apache va �tre configur� pour fonctionner correctement � partir de ce chemin. Une multitude d�options sont aussi disponibles pour vos exigences.
Pour un aper�u des possibilit�s dont vous disposez, vous avez ici un exemple typique qui compile Apache pour un chemin d�installation /sw/pkg/apache avec un compilateur particulier, des flags, et les modules rewrite et speling en DSO (dynamic shared object).
$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-rewrite=shared \
--enable-speling=shared
Lancer configure va prendre quelques minutes pour tester la disponibilit� des options sur votre syst�me, et g�n�rer les Makefiles qui vont servir plus tard � compiler le server.
La fa�on la plus simple pour trouver tous les flags et options est de lancer ./configure �help. Ce qui suit est une br�ve description de la plus part des arguments et variables d�environnement.
Le processus autoconf utilise des variables d�environnement pour g�n�rer l�environnement de compilation. En g�n�ral, ces variables changent la m�thode pour compiler apache, mais ne changent rien dans les fonctionnalit�s du server. Ces variables peuvent �tre plac�es dans l�environnement avant d�appeler configure, mais il est d�autant plus facile de les sp�cifier dans les lignes de commandes de configure comme indiqu� dans l�exemple ci-dessus.
CC=...
- Nom de la commande de compilation.
CPPFLAGS=...
- Options suppl�mentaires pour le compilateur C.
CFLAGS=...
- Options de debug et d�optimisation pour le compilateur C
LDFLAGS=...
- Options suppl�mentaires pass�es au linker.
LIBS=...
- Chemin des librairies pour le linker
INCLUDES=...
- Chemin du r�pertoire des includes ("-Idir").
TARGET=... [Defaut: apache]
- Nom de l�ex�cutable qui va �tre g�n�r�.
NOTEST_CPPFLAGS=...
NOTEST_CFLAGS=...
NOTEST_LDFLAGS=...
NOTEST_LIBS=...
- Ces variables partagent les m�mes fonctions que leurs homologues en non-test. Cependant, les variables seront appliqu�es sur le processus de compilation seulement quand autoconf aura test� les fonctionnalit�s. Ce qui autorise l�inclusion de flags qui pourront causer des probl�mes lors du test de fonctionnalit�s, mai qui devront �tre utilis�es � la compilation finale.
SHLIB_PATH=...
- Chemin du r�pertoire contenant les librairies partag�es pour le compilateur et le linker.
--help
- Affiche le message d�utilisation ainsi que toutes les options disponibles, mais ne configure rien.
--quiet
- D�sactive les messages de test
--verbose
- Affiche plus d�information durant le processus de configuration, comme les noms de fichiers qui sont test�s.
Il y a actuellement deux fa�ons de configurer les r�pertoires dans lesquels Apache va installer ses fichiers. La premi�re m�thode est de sp�cifier les r�pertoires et laisser Apache s�installer tout seul dans les r�pertoires par d�faut.
--prefix=PREFIX [D�faut:
/usr/local/apache2]
- Sp�cifie le r�pertoire dans lequel les fichiers d�Apache vont �tre install�s.
Il est possible de sp�cifier pour des fichiers d�pendant de l�architecture, des emplacements diff�rents.
--exec-prefix=EPREFIX [Default:
PREFIX]
- Sp�cifie le r�pertoire dans lequel les fichiers d�pendant de l�architecture seront plac�s.
La seconde m�thode, plus souple, est d�utiliser le fichier config.layout. En utilisant cette m�thode, il est possible de sp�cifier s�par�ment l�emplacement de chaque type de fichier avant l�installation d�Apache.Le fichier config.layout contient quelques exemples de configurations, et vous explique comment cr�er votre propre configuration personnalis�e en suivant les exemples. Les diff�rentes dispositions dans le fichier sont group�es dans la section <Layout
FOO>...</Layout> et sont report�s par nom dans FOO.
--enable-layout=LAYOUT
- Utilise le layout renseign� dans le fichier
config.layout pour sp�cifier les r�pertoires et chemins d�installation.
Actuellement, il est impossible de combiner les options --enable-layout et --prefix.
Il reste possible de sp�cifier individuellement les chemins d�taill�s dans la ligne de commande de configure. Si vous voulez une installation de base, vous pouvez simplement et seulement utiliser l�option --prefix.Si vous voulez personnaliser votre installation, vous devez �diter le fichier config.layout et utiliser l�option --enable-layout.
Apache est un serveur modulable, les fonctionnalit�s de base uniquement sont inclues dans le core du server. Les fonctionnalit�s �tendues sont disponibles par le biais de modules. Durant le processus de configuration, vous pouvez selectionner les modules que vous d�sirer ajouter au server. Vous pouvez consulter la liste des modules inclue dans la documentation. Ces modules au statut de base, sont inclus par d�faut dans le server et doivent �tre d�sactiv�s si vous ne les voulez pas. Les modules avec un autre statut doivent �tre activ� si vous voulez les utiliser.
Il y a deux fa�on de compiler un module utilis� par Apache. Les modules peuvent �tre compil�s en statique, ce qui signifie qu�ils seront inclus en permanence dans le binaire d�apache.
Sinon, si votre syst�me supporte les Dynamic Shared objects (DSOs) et qu�autoconf d�tecte ce support, vous pouvez compiler dynamiquement. Les modules DSO sont stock�s s�par�ment du binaire Apache, et doivent �tre inclus ou exclus du server en utilisant les directives de configuration de fonctionnement du server disponibles avec mod_so.
Le module mod_so est automatiquement inclus dans le server d�s qu�un module dynamique est inclus lors de la compilation. Si vous voulez que votre serveur puisse utiliser des modules DSO sans le compiler avec un des modules disponibles, vous pouvez sp�cificer --enable-so.
--enable-MODULE[=shared]
- Compile et inclus le module MODULE. L�identifiant MODULE est l� identifiant module disponible dans la documentation sans la terminaison "_module". Pour compiler un module en DSO, ajouter l�option
=shared.
--disable-MODULE
- Enl�ve le module MODULE qui sera sinon compil� et inclus.
--enable-modules=MODULE-LIST
- Compile et inclus les modules list� et s�par�s par des espaces MODULE-LIST.
-
--enable-mods-shared=MODULE-LIST
- Compile et inclus les modules list� et s�par�s par des espaces, MODULE-LIST comme des shared objects(DSO)
modules.
La MODULE-LIST dans les options
--enable-modules et --enable-mods-shared contient normalement une liste d�identifiants de modules s�par�s par des espaces. Par exemple, pour activer mod_dav et mod_info, vous pouvez utiliser
./configure --enable-dav --enable-info
ou autrement:
./configure --enable-modules="dav info"
De plus, l�identifiant all ou
most peut �tre utilis� pour activer tous ou la plus part des modules. Vous pouvez donc aussi de la m�me mani�re enlever les modules avec --disable-MODULE option.
Par exemple, pour ajouter tous les modules en DSO sauf mod_info vous pouvez utiliser�:
./configure --enable-mods-shared=all
--disable-info
En plus des modules standard, Apache 2.0 propose un choix de Modules Multi-Processing (MPMs). Un et un seul MPM peut �tre inclus dans le processus de compilation. Les MPM par d�faut et par plateformes sont list�s dans la MPM documentation page,
mais peuvent �tre modifi�s avec la commande configure.
--with-mpm=NAME
- Choisit le MPM NAME.
Quelques fonctionnalit�s d�Apache utilisent
mod_auth_dbm et mod_rewrite's
DBM RewriteMap utilise des base de donn�es de paires clefs/valeur pour des consultations rapides d�information. Apache inclus SDBM et son code source, pour que la base de donn�e soit toujours disponible. Si vous voulez utiliser un autre type de base de donn�es, les options suivantes de configure sont disponibles:
--with-gdbm[=path]
--with-ndbm[=path]
--with-berkeley-db[=path]
- Si aucun path n�est sp�cifi�, Apache ira chercher dans les fichiers include et librairies des emplacements par d�faut.Un path explicite imposera � Apache d�aller chercher dans path
/lib et le path/include pour les fichiers concern�s. Pour finir, le path peurt contenir des chemins d�include et de librairies s�par�s par des virgules.
Apache inclus un support de programme appel� suexec qui peut �tre utilis� pour isoler des CGIs. Cependant, si suexec n�est pas bien configur�, il peut causer de s�rieux probl�mes de s�curit�. Vous devez donc lire attentivement la
documentation suexec avant d�impl�menter cette fonctionnalit�.
![top]()
Vous pouvez maintenant compiler les differentes parties qui composent le package Apache en lan�ant simplement la commande:
Un peu de patience ici, une configuration basique prend environ 3 minutes pour compiler sur un PIII/Linux 2.2, Mais peut varier sensiblement en fonction de votre mat�riel et du nombre de modules que vous avez activ�.
Vous pouvez maintenant installer Apache dans l�emplacement sp�cifi� lors de la configuration PREFIX (voir l�option --prefix ci-dessus) en tappant:
Si vous upgradez, l�installation n�effacera pas vos fichier de configuration ou documents.
Vous pouvez maintenant d�marrer votre server HTTPd Apache en tappant�:
$ PREFIX/bin/apachectl start
et vous devriez pouvoir consulter votre premier document avec l�URL http://localhost/. La page Web que vous voyez est param�tr�e avec la directive DocumentRoot
qui habituellement contient PREFIX/htdocs/.
Et stopper le serveur en tappant:
$ PREFIX/bin/apachectl stop