mod_so.html.fr 15 KB
Newer Older
powelld's avatar
powelld committed
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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=ISO-8859-1" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_so - Serveur Apache HTTP Version 2.4</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>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.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 Apache HTTP Version 2.4</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.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_so</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_so.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_so.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_so.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_so.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/mod/mod_so.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Chargement de modules ou de code exécutable au cours du
démarrage ou du redémarrage du serveur</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>so_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_so.c</td></tr>
<tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Sous Windows, c'est un module de base (toujours
inclus)</td></tr></table>
<h3>Sommaire</h3>


    <p>Sur les systèmes d'exploitation sélectionnés, ce module peut être
    utilisé pour charger des modules dans le serveur HTTP Apache en cours d'exécution
    grâce au mécanisme des <a href="../dso.html">Dynamic Shared Object ou Objets Partagés
    Dynamiquement</a> (DSO), et évite ainsi de devoir effectuer une
    recompilation.</p>

    <p>Sous Unix, le code chargé provient en général de fichiers objet
    partagés possèdant en général l'extension <code>.so</code>, alors
    que sous Windows, l'extension peut être soit <code>.so</code>, soit
    <code>.dll</code>.</p>

    <div class="warning"><h3>Avertissement</h3>
    <p>En général, les modules compilés pour une version majeure du
    serveur HTTP Apache ne fonctionneront pas avec une autre (par
    exemple de 1.3 à 2.0 ou 2.0 à 2.2). D'une version majeure à l'autre,
    il y a souvent des modifications d'API qui nécessitent des
    modifications du module pour qu'il puisse fonctionner avec la
    nouvelle version.</p>
    </div>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#windows">Création de modules chargeables pour
Windows</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#loadfile">LoadFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#loadmodule">LoadModule</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_so">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_so">Signaler un bug</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="windows" id="windows">Création de modules chargeables pour
Windows</a></h2>

    <div class="note"><h3>Note</h3>
    <p>Sous Windows, où les modules chargeables possèdent en général
    l'extension de nom de fichier <code>.dll</code>, les modules Apache
    httpd se nomment <code>mod_nom-module.so</code>, tout comme sur les
    autres plates-formes. Vous trouverez cependant encore des modules
    tiers, comme PHP par exemple, qui continuent d'utiliser la
    convention de nommage avec extension <code>.dll</code>.</p>

    <p>Bien que <code>mod_so</code> puisse encore charger des modules
    possèdant un nom du style <code>ApacheModuleFoo.dll</code>,
    il est préférable d'utiliser la
    nouvelle convention de nommage ; si vous modifiez votre module
    chargeable pour la version 2.0, veuillez aussi modifier son nom pour
    respecter cette nouvelle convention.</p></div>

    <p>Les API des modules Apache httpd sous Unix et Windows sont identiques.
    Alors que certains modules s'appuient sur certains
    aspects de l'architecture Unix non présents dans Windows, et ne
    fonctionneront donc pas sur cette dernière plate-forme, de nombreux
    modules fonctionnent sous Windows avec peu ou pas de modification
    par rapport à leur version Unix.</p>

    <p>Lorsqu'un module fonctionne, il peut être ajouté au serveur de
    deux manières. Sous Unix, il peut être compilé dans le serveur.
    Comme Apache httpd pour Windows ne dispose pas du programme
    <code>Configure</code> propre à Apache httpd pour Unix, le fichier source
    du module doit être ajouté au fichier projet Apache de base, et ses
    symboles ajoutés au fichier <code>os\win32\modules.c</code>.</p>

    <p>La seconde méthode consiste à compiler le module en tant que DLL,
    à savoir une bibliothèque partagée qui pourra être chargée dans le
    serveur en cours d'exécution via la directive
    <code class="directive">LoadModule</code>. Ces modules DLL
    peuvent être distribués et exécutés sur toute installation d'Apache
    httpd pour Windows, sans avoir à recompiler le serveur.</p>

    <p>Pour créer un module DLL, il est nécessaire d'apporter une légère
    modification à son fichier source : l'enregistrement du module doit
    être exporté depuis la DLL (qui sera elle-même créée plus tard ;
    voir plus loin). Pour ce faire, ajoutez la macro
    <code>AP_MODULE_DECLARE_DATA</code> (définie dans les fichiers
    d'en-têtes d'Apache httpd) à la définition de l'enregistrement de votre
    module. Par exemple, si votre module est déclaré comme suit :</p>

<div class="example"><p><code>
    module foo_module;
</code></p></div>

    <p>Remplacez cette ligne par :</p>
<div class="example"><p><code>
    module AP_MODULE_DECLARE_DATA foo_module;
</code></p></div>

    <p>Notez que cette macro ne sera prise en compte que sous Windows,
    si bien que le module poura être utilisé sans changement sous Unix,
    si besoin est. Alternativement, si vous êtes familier avec les
    fichiers <code>.DEF</code>, vous pouvez les utiliser pour exporter
    l'enregistrement du module.</p>

    <p>Maintenant, nous sommes prêts à créer une DLL contenant notre
    module. Il va falloir pour cela la lier avec la bibliothèque
    d'export libhttpd.lib qui a été créée au cours de la compilation de
    la bibliothèque partagée libhttpd.dll. Il sera peut-être aussi
    nécessaire de modifier la configuration du compilateur pour
    s'assurer que les fichiers d'en-têtes d'Apache httpd seront correctement
    localisés. Vous trouverez cette bibliothèque à la racine du
    répertoire des modules de votre serveur. Il est souhaitable
    d'utiliser un fichier de module .dsp existant dans l'arborescence
    afin de s'assurer que l'environnement de compilation est
    correctement configuré, mais vous pouvez aussi comparer les options
    de compilation et d'édition de liens à votre fichier .dsp.</p>

    <p>Ceci devrait créer une version DLL de votre module. Il vous
    suffit maintenant de l'enregistrer dans le répertoire
    <code>modules</code> à la racine de votre serveur, et d'utiliser la
    directive <code class="directive">LoadModule</code> pour la charger.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="loadfile" id="loadfile">Directive</a> <a name="LoadFile" id="LoadFile">LoadFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Liaison du fichier objet ou de la bibliothèque
spécifié</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LoadFile <em>nom-fichier</em> [<em>nom-fichier</em>] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr>
</table>

    <p>La directive <code class="directive">LoadFile</code> permet de lier le fichier
    objet ou la bibliothèque spécifié au serveur lors du
    démarrage ou du redémarrage
    de ce dernier ; ceci permet d'ajouter tout code additionnel
    nécessaire au fonctionnement d'un module.
    <em>nom-fichier</em> est soit un chemin absolu, soit un chemin
    relatif au répertoire défini par la directive <a href="core.html#serverroot">ServerRoot</a>.</p>

    <p>Par exemple :</p>

    <pre class="prettyprint lang-config">LoadFile "libexec/libxmlparse.so"</pre>



</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="loadmodule" id="loadmodule">Directive</a> <a name="LoadModule" id="LoadModule">LoadModule</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Liaison avec le serveur du fichier objet ou de la
bibliothèque spécifié, et ajout de ce dernier à la liste des modules
actifs</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LoadModule <em>module nom-fichier</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr>
</table>
    <p>La directive <code class="directive">LoadModule</code> permet de lier le fichier objet ou la
    bibliothèque <em>nom-fichier</em> avec le serveur, et d'ajouter la
    structure de module nommée <em>module</em> à la liste des modules
    actifs. <em>module</em> est le nom de la variable externe de type
    <code>module</code> dans le fichier, et est référencé comme <a href="module-dict.html#ModuleIdentifier">Identificateur de
    module</a> dans la documentation des modules.</p>

    <p>Par exemple :</p>

    <pre class="prettyprint lang-config">LoadModule status_module "modules/mod_status.so"</pre>


    <p>charge le module spécifié depuis le sous-répertoire des modules
    situé à la racine du serveur.</p>

</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_so.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_so.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_so.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_so.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/mod/mod_so.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&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 again 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 Freenode, or sent to our <a href="http://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/2.4/mod/mod_so.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 2017 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/directives.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>