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
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.
La configuration d'Apache s'effectue dans le répertoire src
de la distribution. Entrez dans ce répertoire.
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.
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 de 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).
make
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 où il a été
compilé. Si vous souhaitez le lancer d'un autre emplacement,
créer un répertoire et copiez y 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 de ne pas
être sûr. 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.
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 .
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