# Compilation et Installation

Ce document couvre la compilation et l'installation d'Apache sur les systèmes Unix et clones d'Unix. Pour la compilation et l'installation sous Windows, voir Utiliser Apache sous Windows . Pour les autres plates-formes, voir la documentation des plates-formes.

L'environnement de configuration et d'installation d'Apache 2.0 a été complétement revu par rapport à celui d'Apache 1.3. Apache 1.3 utilisait un ensemble de scripts pour permettre une installation facile. Apache 2.0 utilise à présent `libtool` et `autoconf` afin de créer un environnement le plus proche possible d'autres projets Logiciel Libre.

Si vous faite une mise à niveau d'une version mineure à la suivante (par exemple, de 2.0.50 à 2.0.51), veuillez s'il vous plaît passer directement à la section Mise à niveau.

Configurer l'arborescence source
Démarrage d'Apache
Arrêt et Redémarrage

# Survol Rapide pour les impatients

Télécharger | `$ lynx http://httpd.apache.org/download.cgi`
Extraire | `$ gzip -d httpd-2_1_NN.tar.gz $ tar xvf httpd-2_1_NN.tar`
Configurer | `$ ./configure --prefix=PREFIX`
Compiler | `$ make`
Installer | `$ make install`
Personnaliser | `$ vi PREFIX/conf/httpd.conf`
Tester | `$ PREFIX/bin/apachectl start`

NN doit être remplacé par le numéro de version mineure actuel, et PREFIX par le chemin où le serveur doit être installé. Si PREFIX n'est pas spécifié, l'installation se fait dans `/usr/local/apache2`.

Chacune des sections du processus de compilation et d'installation est décrite ci-après, en commençant par les pré-requis à la compilation et à l'installation d'Apache HTTPD.

# Pré-requis

Les pré-requis suivants sont nécessaire pour l'installation d'Apache:

Espace Disque
  Au moins 50 Mo d'espace disque temporaire sont nécessaires. Après installation, Apache occupe environ 10 Mo sur le disque. L'espace disque occupé par une installation complète dépend beaucoup de la configuration du serveur, ainsi que de la présence éventuelle de modules tiers.
Compilateur C ANSI et Build
  Un compilateur C ANSI doit être utilisé. Le compilateur C GNU (GCC) de la Free Software Foundation (FSF) est recommandé (la version 2.7.2 convient). En cas d'absence de GCC, vérifiez que le compilateur fourni avec l'architecture utilisée est conforme aux normes ANSI. De plus, les outils de constructions de base, tel `make`, doivent être présents dans votre `PATH`.
S'assurer que la machine est et reste à l'heure
  Certains éléments du protocole HTTP sont exprimés en tant qu'heure de la journée. Aussi est-il important de s'assurer que le système où Apache doit tourner dispose de mécanismes de synchronisation temporelle. En général, les programmes `ntpdate` ou `xntpd` sont utilisés; ces programmes implémentent le Network Time Protocol (NTP). Voir le groupe Usenet comp.protocols.time.ntp et la page NTP pour plus de détails sur les logiciels NTP et les serveurs de temps publics.
Perl 5 [FACULTATIF]
  Certains des scripts fournis avec Apache, tel apxs ou dbmmanage (qui sont écrits en Perl) nécessitent l'interpréteur Perl 5 (version 5.003 ou supérieure). Au cas où le script `configure` ne trouve pas d'interpréteur Perl, la compilation sera quand même réalisée sans souci. Seuls ces scripts ne seront pas utilisables. Si plusieurs interpréteurs Perl sont installés (par exemple, Perl 4 fourni avec l'OS, et Perl 5 installé par l'administrateur), il est conseillé de passer l'option `--with-perl` afin de garantir que le bon interpréteur est utilisé par `./configure`.

# Télécharger

Apache est téléchargeable depuis le site de téléchargement d'Apache qui fournit la liste de plusieurs miroirs. Là sont disponibles les dernières versions. La plupart des utilisateurs d'Apache sur des systèmes de type Unix devraient probablement télécharger et compiler une version à partir du code source. Le processus de construction (décrit ci-dessous) est facile et vous permet d'adapter votre serveur pour convenir à vos besoins. En outre, les versions binaires ne sont souvent pas à jour avec les dernières versions du code source. Si vous téléchargez une version binaire, suivez les instructions dans le dossier `INSTALL.bindist` à l'intérieur de la distribution.

Après le téléchargement, il est important de vérifier que les sources téléchargées sont bien complètes et non modifiées, et ce surtout si un miroir a été utilisé pour le téléchargement. Ceci peut être fait en testant l'archive tar téléchargée avec la signature PGP. Cette procédure s'effectue en 2 étapes. D'abord, il faut récupérer le fichier `KEYS` du site de distribution d'Apache. (Pour vérifier que ce fichier `KEYS` n'a pas été modifié, une bonne idée peut être d'utiliser un fichier d'une distribution précédente d'Apache ou d'importer les clés d'un serveur de clés public.) Les clés peuvent être importées dans le keyring de l'utilisateur au moyen d'une des commandes (selon la version de PGP):

$ pgp < KEYS

ou

$ gpg --import KEYS

La prochaine étape est de tester l'archive tar au moyen de la signature PGP, qui devrait toujours être disponible sur le site principal d'Apache. Un lien vers cette signature est placé derrière le lien de téléchargement correspondant ou peut être trouvé dans le répertoire correspondant sur le site de distribution d'Apache. Le nom de ce fichier est le même que celui de l'archive source, avec en plus l'extension `.asc`. La distribution téléchargée peut alors être vérifiée au moyen de la commande (à nouveau, selon la version de PGP):

$ pgp httpd-2_1_NN.tar.gz.asc

ou

$ gpg --verify httpd-2_1_NN.tar.gz.asc

Un message comme celui-ci devrait s'afficher

Good signature from user "Martin Kraemer <martin@apache.org>".

Selon les relations de confiances contenues dans le keyring de l'utilisateur, un message peut s'afficher, spécifiant que la relation entre la clé et le signataire ne peut être vérifiée. Ceci n'est pas un problème si vous ne mettez pas en doute l'authenticité du fichier `KEYS`.

# Extraire

Extraire les sources à partir de l'archive tar est une simple affaire de décompression et d'extraction tar:

$ gzip -d httpd-2_1_NN.tar.gz
$ tar xvf httpd-2_1_NN.tar

Un nouveau répertoire est créé dans le répertoire courant, il contient le code source de la distribution. Il faut aller dans ce répertoire au moyen de la commande `cd` avant de commencer la compilation du serveur.

# Configurer l'arborescence source

L'étape suivante est la configuration de l'arborescence source d'Apache, pour votre plate-forme et selon les nécessités du site. Cette configuration est réalisée au moyen du script `configure` fourni dans le répertoire racine de la distribution. (Les développeurs qui téléchargent Apache via CVS devront utiliser les outils `autoconf` et `libtool` avant de passer à la suite. Ceci n'est pas nécessaire pour les versions officielles.)

Pour configurer l'arborescence source en utilisant les options par défaut, tapez `./configure`. Pour modifier les valeurs des options par défaut, `configure` accepte un grand nombre de variables et d'options de ligne de commande.

La plus importante de ces options est le chemin du répertoire où Apache sera installé, car Apache doit être configuré pour que cet emplacement fonctionne correctement. Plusieurs autres options sont disponibles pour le contrôle fin de l'emplacement des fichiers résultants avec options de configuration.

En outre, à ce moment, vous pouvez indiquer quels fonctionnalités vous voulez inclure dans Apache en ajoutant et/ou en retranchant des modules. Apache vient avec un ensemble de modules de Base inclus par défaut. D'autres modules peuvent être ajoutés en utilisant l'option `--enable-module`, où module est le nom du module avec la chaîne `mod_` coupée et avec les caractères de soulignement convertis en tirets. Vous pouvez également choisir de compiler des modules en tant qu'objets partagés (DSOs), qui peuvent être chargés ou déchargé à l'exécution -- en employant l'option `--enable-module=shared`. De même, vous pouvez retrancher les modules de Base avec l'option `--disable-module`. Prenez garde lorsque vous employez ces options, puisque `configure` ne peut vous informer si le module cible n'existe pas; `configure` ignorera simplement l'option.

Il est parfois nécessaire de fournir des informations supplémentaires au script `configure` sur l'emplacement de vos compilateur, bibliothèques ou dossiers d'en-tête. Ceci se fait en passant les variables d'environnement ou des options incluses sur la ligne de commande à `configure`. Pour plus d'information sur ce sujet, consultez la page de documentation configurer.

L'exemple suivant compile Apache pour être installé dans `/sw/pkg/apache` avec un compilateur et des options de compilation particulières, ainsi que les deux modules mod_rewrite et mod_speling, qui pourront être chargés plus tard au moyen des mécanismes DSO:

$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-rewrite=shared \
--enable-speling=shared

Une fois lancé, `configure` peut prendre quelques minutes pour tester les possibilités du système et produire les fichiers `Makefile` qui seront utilisés pour construire le serveur.

Les détails de toutes les options `configure` sont disponibles sur la page de documentation configurer.

# Compiler

Les différents composants d'Apache sont à présent prêts à être compilés, en tapant simplement la commande:

$ make

Un peu de patience est requise, une configuration standard met environ 3 minutes à compiler sur un Pentium III sous Linux 2.2. Ce temps peut varier largement suivant le matériel utilisé et les modules selectionnés.

# Installer

Il est temps d'installer le 'package' dans le répertoire d'installation PREFIX configuré auparavant (voir l'option `--prefix` ci-dessus) en tapant:

$ make install

En cas de mise à jour, l'installation n'écrasera ni les fichiers de configuration du serveur, ni ses documents.

# Personnaliser la Configuration

Il reste à présent à configurer le serveur HTTP Apache, en éditant les fichiers de configuration placés dans `PREFIX/conf/`.

$ vi PREFIX/conf/httpd.conf

A consulter : le manuel d'Apache dans docs/manual/ ou bien http://httpd.apache.org/docs/&httpd.docs;/ pour la dernière version de ce manuel, ainsi qu'une référence complète de toutes les directives de configuration.

# Tester

Une fois configuré, le serveur HTTP Apache peut être démarré en tapant:

$ PREFIX/bin/apachectl start

Vous devriez alors pouvoir tester l'URL `http://localhost/`. La page affichée se trouve dans le répertoire DocumentRoot, habituellement configuré en tant que `PREFIX/htdocs/`. Le serveur peut être arrêté en tapant:

$ PREFIX/bin/apachectl stop

# Mise à niveau

La première étape pour une mise à niveau est de lire l'annonce de la nouvelle version et le fichier `CHANGES` dans la distribution afin de trouver tous les changements qui peuvent affecter votre site. Si la mise à jour est effectuée entre deux versions principales (par exemple, de 1.3 à 2.0 ou de 2.0 à 2.2), attendez-vous à des différences majeures au moment de la compilation et de l'exécution, exigeant probablement des ajustements manuels. Tous les modules devront également être mis à niveau pour tenir compte des changements de l'API.

La mise à niveau d'une version mineure à une plus récente (par exemple, de 2.0.55 à 2.0.57) est plus facile. Le processus `make install` n'écrasera aucun de vos documents, fichiers journaux, ou fichiers de configuration existants. En outre, les développeurs font tous les efforts possibles pour éviter les changements incompatibles des options `configure`, de la configuration d'exécution, ou de l'API entre les versions mineures. Dans la plupart des cas vous devriez pouvoir employer une ligne de commande `configure` et un fichier de configuration identiques. De plus, tous vos modules devraient continuer à fonctionner. (Ceci ne vaut que pour les versions postérieures à 2.0.41; les versions antérieures ont des changements incompatibles.)

Si vous avez gardé l'arborescence source de votre dernière installation, la mise à niveau est encore plus facile. Le dossier `config.nice` dans la racine de l'ancienne arborescence contient la ligne de commande `configure` exacte que vous avez utilisée pour configurer l'arborescence des sources. Pour faire la mise à niveau d'une version à la suivante, vous devez copier le dossier `config.nice` dans l'arborescence des sources de la nouvelle version, l'éditer pour faire les changements désirés, puis exécuter:

$ ./config.nice
$ make
$ make install
$ PREFIX/bin/apachectl stop
$ PREFIX/bin/apachectl start

Vous devriez toujours essayer une nouvelle version dans un environnement de test avant de la mettre dans un environnement de production. Par exemple, vous pouvez installer et exécuter la nouvelle version côte à côte avec l'ancienne en employant un `--prefix` et un port différents (ce qui est possible en ajustant la directive Listen) dans le but de tester toutes les incompatibilités possibles avant de faire la mise à niveau finale.