<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Utiliser Apache sur les systèmes à base de paquets RPM (Redhat
  / CentOS / Fedora) - Serveur HTTP Apache Version 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur HTTP Apache Version 2.5</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Notes spécifiques aux différentes
  plateformes</a></div><div id="page-content"><div id="preamble"><h1>Utiliser Apache sur les systèmes à base de paquets RPM (Redhat
  / CentOS / Fedora)</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/platform/rpm.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/platform/rpm.html" title="Français">&nbsp;fr&nbsp;</a></p>
</div>


    <p>Alors que de nombreuses distributions mettent à disposition des
    paquets Apache httpd supportés par le système d'exploitation
    sous-jacent, il peut s'avérer nécessaire d'installer et d'utiliser
    la version de base d'Apache httpd en remplacement de la version des
    paquets.</p>

    <p>Bien que le projet Apache httpd ne crée pas actuellement de
    paquets RPM pour les différentes distributions, il est aisé de
    construire votre propre paquet RPM à partir du tarball de base
    d'Apache httpd.</p>

    <p>Ce document explique comment construire, installer, configurer et
    exécuter Apache httpd 2.4 sur les systèmes Unix à base de paquets
    RPM.</p>

  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#creating">Création d'un paquet RPM source</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#building">Création d'un paquet RPM</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#installing">Installation du serveur</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#default">Configuration de l'instance par défaut d'Apache httpd</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#additional">Configuration d'instances d'Apache httpd supplémentaires sur
    la même machine</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="creating" id="creating">Création d'un paquet RPM source</a> <a title="Lien permanent" href="#creating" class="permalink">&para;</a></h2>
    

    <p>Le tarball d'Apache httpd peut être converti en paquet SRPM de la
    manière suivante :</p>

    <div class="example"><p><code>
      rpmbuild -ts httpd-2.4.x.tar.bz2
    </code></p></div>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="building" id="building">Création d'un paquet RPM</a> <a title="Lien permanent" href="#building" class="permalink">&para;</a></h2>
    

    <p>Le tarball d'Apache httpd peut être converti en paquet RPM de la
    manière suivante :</p>

    <div class="example"><p><code>
      rpmbuild -tb httpd-2.4.x.tar.bz2
    </code></p></div>

    <p>Il sera nécessaire d'installer les paquets "-devel"
    correspondants avant de construire les RPMs ; à cet effet, la
    commande <code>rpmbuild</code> détecte automatiquement les RPMs
    requis et en donne la liste sous forme de dépendances manquantes sur
    votre système. Ces paquets "-devel" ne seront d'ailleurs plus
    nécessaires une fois la création des RPMs terminée, et pourront
    alors être supprimés sans risque.</p>

    <p>Si tout va bien, les RPMs suivants seront créés :</p>

    <dl>
    <dt>httpd-2.4.x-1.i686.rpm</dt>
    <dd>Le serveur de base et le jeu de modules standards.</dd>

    <dt>httpd-debuginfo-2.4.x-1.i686.rpm</dt>
    <dd>Les symboles de débogage pour le serveur et tous les modules.</dd>

    <dt>httpd-devel-2.4.x-1.i686.rpm</dt>
    <dd>Les en-têtes et fichiers de développement pour le serveur.</dd>

    <dt>httpd-manual-2.4.x-1.i686.rpm</dt>
    <dd>Le manuel du serveur web.</dd>

    <dt>httpd-tools-2.4.x-1.i686.rpm</dt>
    <dd>Les utilitaires du serveur web.</dd>

    <dt>mod_authnz_ldap-2.4.x-1.i686.rpm</dt>
    <dd>Les modules <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> et
    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> avec les dépendances
    correspondantes sur openldap.</dd>

    <dt>mod_lua-2.4.x-1.i686.rpm</dt>
    <dd>Le module <code class="module"><a href="../mod/mod_lua.html">mod_lua</a></code> avec les dépendances
    correspondantes sur lua.</dd>

    <dt>mod_proxy_html-2.4.x-1.i686.rpm</dt>
    <dd>Le module <code class="module"><a href="../mod/mod_proxy_html.html">mod_proxy_html</a></code> avec les
    dépendances correspondantes sur libxml2.</dd>

    <dt>mod_socache_dc-2.4.x-1.i686.rpm</dt>
    <dd>Le module <code class="module"><a href="../mod/mod_socache_dc.html">mod_socache_dc</a></code> avec les
    dépendances correspondantes sur distcache.</dd>

    <dt>mod_ssl-2.4.x-1.i686.rpm</dt>
    <dd>Le module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> avec les
    dépendances correspondantes sur openssl.</dd>

    </dl>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="installing" id="installing">Installation du serveur</a> <a title="Lien permanent" href="#installing" class="permalink">&para;</a></h2>
    

    <p>Le RPM <code>httpd</code> est le seul paquet nécessaire pour
    obtenir un serveur de base fonctionnel. Vous pouvez l'installer
    comme suit :</p>

    <div class="example"><p><code>
      rpm -U httpd-2.4.x-1.i686.rpm
    </code></p></div>

    <p>Le jeu de modules standards est inclus dans le serveur. Les
    modules qui dépendent de bibliothèques externes sont fournis en tant
    que paquets RPM séparés et doivent être installés si nécessaire.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="default" id="default">Configuration de l'instance par défaut d'Apache httpd</a> <a title="Lien permanent" href="#default" class="permalink">&para;</a></h2>
    

    <p>Les répertoires par défaut sont
    <code>/etc/httpd</code> pour la configuration du serveur, et
    <code>/var/log/httpd</code> pour la journalisation. L'environnement
    par défaut du serveur web est défini dans le répertoire optionnel
    <code>/etc/sysconfig/httpd</code>.</p>

    <p>Démarrez le serveur comme suit :</p>

    <div class="example"><p><code>
      service httpd restart
    </code></p></div>

  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="additional" id="additional">Configuration d'instances d'Apache httpd supplémentaires sur
    la même machine</a> <a title="Lien permanent" href="#additional" class="permalink">&para;</a></h2>
    

    <p>Il est possible d'exécuter simultanément plusieurs instances du
    serveur Apache httpd sur la même machine. Chaque instance peut
    posséder sa propre configuration et en fonction de cette dernière,
    s'exécuter sous un utilisateur différent.</p>

    <p>Pour parvenir à ce résultat, on a fait en sorte que le script de
    démarrage de httpd ait connaissance de son propre nom. Ce nom est
    par la suite utilisé pour trouver le fichier d'environnement associé
    au serveur, et par conséquent, la racine de l'instance du serveur
    considéré.</p>

    <p>Pour créer une instance supplémentaire appelée
    <code>httpd-additional</code>, suivez ces étapes :</p>

    <ul>
      <li>Créez un lien symbolique vers le script de démarrage pour
      l'instance supplémentaire :

      <div class="example"><p><code>
        ln -s /etc/rc.d/init.d/httpd /etc/rc.d/init.d/httpd-additional<br />
        chkconfig --add httpd-additional
      </code></p></div>

      </li>

      <li>Créez un fichier d'environnement pour l'instance
      supplémentaire, en utilisant le fichier
      <code>/etc/sysconfig/httpd</code> comme modèle :

      <div class="example"><p><code>
        # création du fichier d'environnement à partir du modèle httpd<br />
        cp /etc/sysconfig/httpd /etc/sysconfig/httpd-additional
      </code></p></div>
      
      <div class="example"><p><code>
        # création du fichier d'environnement à partir de zéro<br />
        touch /etc/sysconfig/httpd-additional
      </code></p></div>

      Editez le fichier <code>/etc/sysconfig/httpd-additional</code> et
      définissez la racine de la nouvelle instance du serveur via la
      variable d'environnement <code>OPTIONS</code>.

      <div class="example"><p><code>
        OPTIONS="-d /etc/httpd-additional -f conf/httpd-additional.conf"
      </code></p></div>

      </li>

      <li>Editez le fichier de configuration du serveur supplémentaire
      <code>/etc/httpd-additional/conf/httpd-additional.conf</code> et
      assurez-vous que les ports et chemins sont correctement définis.
      </li>

      <li>Démarrez le serveur supplémentaire comme suit :

      <div class="example"><p><code>
        service httpd-additional restart
      </code></p></div>

      </li>

      <li>Répétez ces opérations pour chaque instance supplémentaire
      souhaitée.</li>
    </ul>

  </div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/platform/rpm.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/platform/rpm.html" title="Français">&nbsp;fr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/platform/rpm.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else {
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2021 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>