<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Compilation et installation d'Apache</TITLE>
</HEAD>

<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<BODY
 BGCOLOR="#FFFFFF"
 TEXT="#000000"
 LINK="#0000FF"
 VLINK="#000080"
 ALINK="#FF0000"
>
<!--#include virtual="header.html" -->

<H1 ALIGN="CENTER">Compilation et installation d'Apache 1.3</H1>

<P>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 </P>
<UL>
<LI><A HREF="windows.html">Utilisation d'Apache sur Microsoft Windows</A>
<LI><A HREF="netware.html">Utilisation d'Apache sur Novell Netware 5</A>
<LI><A HREF="mpeix.html">Utilisation d'Apache sur HP MPE/iX</A>
<LI><A HREF="unixware.html">Utilisation d'Apache sur UnixWare</A>
<LI><A HREF="readme-tpf.html">Aperçu du portage d'Apache sur TPF</A>
</UL>

<H2>Téléchargement d'Apache</H2>
Les informations sur la dernière version d'Apache se trouvent sur le
site web d'Apache à l'adresse 
<A HREF="http://www.apache.org/">http://www.apache.org/</A>.  
Ce site réunit la version actuelle, les récentes versions
beta, ainsi que la liste des sites miroirs web et ftp anonymes.
<P>
Si vous avez téléchargé une distribution composée
des binaires, passez directement à l'<A HREF="#install">installation d'Apache</A>. 
Sinon lisez la section suivante afin de savoir comment compiler le serveur.

<H2>Compilation d'Apache</H2>

La compilation d'Apache se compose de trois étapes : la sélection des
<STRONG>modules</STRONG> 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.
<P>

La configuration d'Apache s'effectue dans le répertoire <CODE>src</CODE>
de la distribution. Entrez dans ce répertoire.

<OL>
 <LI>
  Sélection des modules à compiler dans Apache définis dans le 
    fichier <CODE>Configuration</CODE>. 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 <A HREF="misc/API.html">API.html</A> 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).
  <P>

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


 <LI>
  Création de la configuration pour votre système d'exploitation. 
    Normalement vous n'avez qu'à exécuter le script <CODE>Configure</CODE>
    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 <CODE>Configuration</CODE> :   
    <CODE>EXTRA_CFLAGS, LIBS, LDFLAGS, INCLUDES</CODE>.
  <P>

  Lancement du script <CODE>Configure</CODE> :
  <BLOCKQUOTE>
   <PRE>
    % Configure
    Using 'Configuration' as config file
     + configured for &lt;whatever&gt; platform
     + setting C compiler to &lt;whatever&gt; *
     + setting C compiler optimization-level to &lt;whatever&gt; *
     + 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
   </PRE>
  </BLOCKQUOTE>

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

  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 
    <CODE>support</CODE>, pour compiler les programmes optionnels d'assistance. 
  <P>

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

 <LI>
  Compilation des sources. 
  Tapez : <PRE>make</PRE>
</OL>

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 d'autres parties correspondant
à des besoins ou des fonctions spécifiques sont disponibles à
l'adresse &lt;<A HREF="http://www.apache.org/dist/httpd/contrib/modules/"
    >http://www.apache.org/dist/httpd/contrib/modules/</A>&gt;.
Des instructions sont fournies sur cette page pour lier ces modules au noyau 
d'Apache.

<H2><A NAME="install">Installation d'Apache</A></H2>

Vous devez avoir un exécutable appelé <CODE>httpd</CODE> dans le
répertoire <CODE>src</CODE>. Une distribution des binaires doit fournir
ce fichier.<P>

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
<CODE>conf</CODE>, <CODE>logs</CODE> et <CODE>icons</CODE>.
Dans tous les cas lisez le document 
<A HREF="misc/security_tips.html#serverroot">trucs sur la sécurité</A>
qui décrit comment affecter les droits sur le répertoire racine du serveur.<P>

L'étape suivante est la modification des fichiers de configuration du serveur.
Cela consiste à définir différentes
<STRONG>directives</STRONG> dans les trois fichiers centraux de configuration.
Par défaut ces fichiers sont situés dans le répertoire 
<CODE>conf</CODE> et s'appellent <CODE>srm.conf</CODE>,
<CODE>access.conf</CODE> et <CODE>httpd.conf</CODE>. 
Pour vous aider, les mêmes fichiers existent dans le répertoire
<CODE>conf</CODE> de la distribution et sont appelés <CODE>srm.conf-dist</CODE>,
 <CODE>access.conf-dist</CODE> et <CODE>httpd.conf-dist</CODE>. 
Copiez ou renommez ces fichiers en supprimant le <CODE>-dist</CODE> 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 
<CODE>conf</CODE> un fichier <CODE>mime.types</CODE>.
Généralement, ce fichier n'a pas besoin d'être modifié.
<P>

Premièrement éditez le fichier <CODE>httpd.conf</CODE>.  
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 <CODE>srm.conf</CODE>. 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 <CODE>access.conf</CODE> pour au moins définir les schémas 
d'accès de base.

<P>

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

<H3>Définissez l'heure du système correctement !</H3>

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.

<H3>Démarrage et arrêt du serveur</H3>

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

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 : 

<PRE>
    http://localhost/
</PRE>

<P>

Notez que lors du démarrage du serveur un certain nombre de processus 
<EM>fils</EM> 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.

<P>

Si au lancement de <CODE>httpd</CODE> 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). 
<P>

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 <CODE>error_log</CODE> du 
répertoire <CODE>logs</CODE>).
<P>

Si vous voulez que votre serveur continue à s'exécuter après
une relance du système, vous devez ajouter un appel à <CODE>httpd</CODE>
dans vos fichiers de démarrage du système (typiquement <CODE>rc.local</CODE> 
ou un fichier dans un répertoire <CODE>rc.<EM>N</EM></CODE>). 
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. 

<P>

Pour arrêter Apache, envoyez au processus parent un signal TERM.
Le PID de ce processus est écrit dans le fichier <CODE>httpd.pid</CODE>
situé dans le répertoire <CODE>logs</CODE> (à 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 :

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

<P>

Pour plus d'information sur les options de la ligne de commande, sur les
fichiers de configuration et les fichiers de trace, voir
<A HREF="invoking.html">Démarrage d'Apache</A>. Pour un guide de 
référence de toutes les directives Apache autorisées par
les modules distribués, voir les
<A HREF="mod/directives.html">directives Apache </A>.

<H2>Compilation des programmes d'assistance</H2>

En plus du serveur <CODE>httpd</CODE> 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 <CODE>support</CODE> de la distribution.
Pour les compiler, allez dans ce répertoire et tapez : 
<PRE>
    make
</PRE>

<!--#include virtual="footer.html" -->
</BODY>
</HTML>
