Compilation et installation d'Apache

### Apache HTTP Server

# Compilation et installation d'Apache 1.3

Ce document décrit la compilation et l'installation d'Apache sur les systèmes Unix, en employant la compilation et l'installation manuelle. Si vous souhaitez utiliser l'interface de configuration semblable à autoconf, il est conseillé de lire plutôt le fichier INSTALL situé dans la racine des fichiers sources de la distribution d'Apache. Pour compiler et installer Apache sur d'autres plates-formes, consultez

- Utilisation d'Apache sur Microsoft Windows
- Utilisation d'Apache sur Cygwin
- Utilisation d'Apache sur Novell Netware
- Utilisation d'Apache sur HP MPE/iX
- Utilisation d'Apache sur UnixWare
- Aperçu du portage d'Apache sur TPF

## Téléchargement d'Apache

Les informations sur la dernière version d'Apache se trouvent sur le site web d'Apache à l'adresse http://www.apache.org/. Ce site réunit la version actuelle, les récentes versions beta, ainsi que la liste des sites miroirs web et ftp anonymes.

Si vous avez téléchargé une distribution composée des binaires, passez directement à l'installation d'Apache. Sinon lisez la section suivante afin de savoir comment compiler le serveur.

## Compilation d'Apache

La compilation d'Apache se compose de trois étapes : la sélection des modules que vous souhaitez inclure dans le serveur; la création de la configuration pour votre système d'exploitation; la compilation les sources pour créer les exécutables.

La configuration d'Apache s'effectue dans le répertoire `src` de la distribution. Entrez dans ce répertoire.

1. Sélection des modules à compiler dans Apache définis dans le fichier `Configuration`. Décommentez les lignes correspondant aux modules que vous souhaitez inclure (parmi les lignes commençant par AddModule situées à la fin du fichier), ou ajoutez de nouvelles lignes correspondant à des modules additionnels que vous avez téléchargés ou écrits. (Voir API.html comme documentation préliminaire à l'écriture de modules Apache). Les utilisateurs avertis peuvent commenter certains des modules actifs par défaut si ils sont sûrs qu'ils n'en ont pas besoin (il faut néanmoins faire attention, car la plupart des modules actifs par défaut sont vitaux au bon fonctionnement et à la sécurité du serveur).

   Vous pouvez également lire les instructions contenues dans le fichier `Configuration` afin de savoir si devez activer certaines lignes commençant par `Rule`.

2. Création de la configuration pour votre système d'exploitation. Normalement vous n'avez qu'à exécuter le script `Configure` comme décrit ci-dessous. Cependant si le script échoue ou si vous avez des besoins particuliers (par exemple inclure une librairie nécessaire à un module optionnel) vous devrez modifier une ou plusieurs des options contenues dans le fichier `Configuration` : `EXTRA_CFLAGS, LIBS, LDFLAGS, INCLUDES`.

   Lancement du script `Configure` :

   >         % Configure
   >         Using 'Configuration' as config file
   >          + configured for <whatever> platform
   >          + setting C compiler to <whatever> *
   >          + setting C compiler optimization-level to <whatever> *
   >          + Adding selected modules
   >          + doing sanity check on compiler and options
   >         Creating Makefile in support
   >         Creating Makefile in main
   >         Creating Makefile in os/unix
   >         Creating Makefile in modules/standard

   (*: selon le fichier Configuration et votre système, Configure peut ne pas afficher ces lignes).

   Ceci crée un fichier Makefile qui sera utilisé lors de l'étape trois. Il crée également un fichier Makefile dans le répertoire `support`, pour compiler les programmes optionnels d'assistance.

   (Si vous souhaitez maintenir différentes configurations, `Configure` accepte une option lui disant de lire un autre fichier de configuration, comme : `Configure -file Configuration.ai`).

3. Compilation des sources. Tapez :

       make

Les modules contenus dans la distribution Apache sont ceux que nous avons testés et qui ont été utilisés par plusieurs membres de l'équipe de développement d'Apache. Les modules additionnels proposés par les membres ou par d'autres contributeurs correspondant à des besoins ou des fonctions spécifiques sont disponibles à l'adresse <http://www.apache.org/dist/httpd/contrib/modules/>. Des instructions sont fournies sur cette page pour lier ces modules au noyau d'Apache.

## Installation d'Apache

Vous devez avoir un exécutable appelé `httpd` dans le répertoire `src`. Une distribution des binaires doit fournir ce fichier.

La prochaine étape est d'installer le programme et de le configurer. Apache est conçu pour être configuré et lancé à partir du même groupe de répertoires que celui où il a été compilé. Si vous souhaitez le lancer d'un autre emplacement, créer un répertoire et y copier les répertoires `conf`, `logs` et `icons`. Dans tous les cas lisez le document trucs sur la sécurité qui décrit comment affecter les droits sur le répertoire racine du serveur.

L'étape suivante est la modification des fichiers de configuration du serveur. Cela consiste à définir différentes directives dans les trois fichiers centraux de configuration. Par défaut ces fichiers sont situés dans le répertoire `conf` et s'appellent `srm.conf`, `access.conf` et `httpd.conf`. Pour vous aider, les mêmes fichiers existent dans le répertoire `conf` de la distribution et sont appelés `srm.conf-dist`, `access.conf-dist` et `httpd.conf-dist`. Copiez ou renommez ces fichiers en supprimant le `-dist` pour le nouveau nom. Ensuite éditez chacun de ces fichiers. Lisez attentivement les commentaires de chacun de ces fichiers. Une mauvaise configuration de ces fichiers empêcherait votre serveur de démarrer, ou introduirait un problème de sécurité. Vous devez également trouver dans le répertoire `conf` un fichier `mime.types`. Généralement, ce fichier n'a pas besoin d'être modifié.

Premièrement éditez le fichier `httpd.conf`. Celui ci fixe les paramètres généraux du serveur : le numéro de port, l'utilisateur qui l'exécute, etc. Ensuite éditez le fichier `srm.conf`. Ce fichier définit la racine de l'arborescence des documents, les fonctions spéciales telles que les pages HTML dynamiques, l'analyse des imagemap, etc. Enfin, éditez le fichier `access.conf` pour au moins définir les schémas d'accès de base.

En plus de ces trois fichiers, le comportement du serveur peut être configuré dans chaque répertoire en utilisant les fichiers `.htaccess` pour les répertoires accédés par le serveur.

### Définissez l'heure du système correctement !

Un bon fonctionnement d'un site web public nécessite une heure juste, car des éléments du protocole HTTP sont exprimés en termes de date et heure du jour. Il est donc temps de chercher comment configurer NTP ou un autre produit de synchronisation temporelle sur votre système UNIX, ou un équivalent sous NT.

### Démarrage et arrêt du serveur

Pour démarrer le serveur, exécutez `httpd`. Il cherchera le fichier `httpd.conf` à l'emplacement spécifié lors de la compilation (par défaut `/usr/local/apache/conf/httpd.conf`). Si ce fichier est situé autre part, vous pouvez indiquer son emplacement en utilisant l'option -f. Par exemple :

        /usr/local/apache/httpd -f /usr/local/apache/conf/httpd.conf

Si tout se passe bien, vous devez vous retrouver de nouveau sur l'invite de commande. Ceci indique que le serveur est actif et s'exécute. Si quelque chose se passe mal durant l'initialisation du serveur, un message d'erreur s'affichera à l'écran. Si le serveur démarre correctement, vous pouvez utiliser votre navigateur, vous connecter au serveur et lire la documentation. Si vous lancez le navigateur à partir de la machine où s'exécute le serveur et que vous utilisez le port par défaut 80, une URL valide à taper dans votre navigateur est :

        http://localhost/

Notez que lors du démarrage du serveur un certain nombre de processus fils sont créés afin de traiter les requêtes. Si vous démarrez le serveur en étant root, le processus père s'exécutera avec les droits de root, tandis que les processus fils s'exécuteront avec les droits de l'utilisateur défini dans le fichier httpd.conf.

Si au lancement de `httpd` celui ci indique qu'il n'arrive pas à s'attacher à une adresse, cela signifie soit qu'un autre processus s'exécute déjà en utilisant le numéro de port défini dans la configuration d'Apache, soit que vous essayez de lancer httpd en tant qu'utilisateur normal et que vous essayez d'utiliser un port inférieur à 1024 (comme le port 80 par exemple).

Si le serveur ne s'exécute pas, lisez le message affiché quand vous lancez httpd. Vous devez également vérifier le fichier error_log pour plus d'informations (dans la configuration par défaut ce fichier est situé dans le fichier `error_log` du répertoire `logs`).

Si vous voulez que votre serveur continue à s'exécuter après une relance du système, vous devez ajouter un appel à `httpd` dans vos fichiers de démarrage du système (typiquement `rc.local` ou un fichier dans un répertoire `rc.N`). Ceci lancera le serveur Apache avec les droits de root. Avant de le faire, vérifiez que votre serveur est correctement configuré au niveau de la sécurité et des restrictions d'accès.

Pour arrêter Apache, envoyez au processus parent un signal TERM. Le PID de ce processus est écrit dans le fichier `httpd.pid` situé dans le répertoire `logs` (à moins qu'Apache soit configuré autrement). N'essayez pas de supprimer les processus fils car d'autres seront créés par le processus père. Une commande typique pour arrêter le serveur est :

        kill -TERM `cat /usr/local/apache/logs/httpd.pid`

Pour plus d'information sur les options de la ligne de commande, sur les fichiers de configuration et les fichiers de trace, voir Démarrage d'Apache. Pour un guide de référence de toutes les directives Apache autorisées par les modules distribués, voir les directives Apache .

## Compilation des programmes d'assistance

En plus du serveur `httpd` qui est compilé et configuré comme ci dessus, Apache inclut un certain nombre de programmes d'assistance. Ceux ci ne sont pas compilés par défaut. Les programmes d'assistance sont situés dans le répertoire `support` de la distribution. Pour les compiler, allez dans ce répertoire et tapez :

        make

### Apache HTTP Server