1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237
|
<?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><!--
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.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <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"> en </a> |
<a href="../fr/mod/mod_so.html" title="Franais"> fr </a> |
<a href="../ja/mod/mod_so.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_so.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/mod/mod_so.html" hreflang="tr" rel="alternate" title="Trke"> tr </a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Chargement de modules ou de code excutable au cours du
dmarrage ou du redmarrage 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">IdentificateurdeModule:</a></th><td>so_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">FichierSource:</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 systmes d'exploitation slectionns, ce module peut tre
utilis pour charger des modules dans le serveur HTTP Apache en cours d'excution
grce au mcanisme des <a href="../dso.html">Dynamic Shared Object ou Objets Partags
Dynamiquement</a> (DSO), et vite ainsi de devoir effectuer une
recompilation.</p>
<p>Sous Unix, le code charg provient en gnral de fichiers objet
partags possdant en gnral 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 gnral, les modules compils 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 ncessitent des
modifications du module pour qu'il puisse fonctionner avec la
nouvelle version.</p>
</div>
</div>
<div id="quickview"><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>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#windows">Cration de modules chargeables pour
Windows</a></li>
</ul><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">Cration de modules chargeables pour
Windows</a></h2>
<div class="note"><h3>Note</h3>
<p>Sous Windows, o les modules chargeables possdent en gnral
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
possdant un nom du style <code>ApacheModuleFoo.dll</code>,
il est prfrable 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 prsents dans Windows, et ne
fonctionneront donc pas sur cette dernire 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 manires. 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 ajouts au fichier <code>os\win32\modules.c</code>.</p>
<p>La seconde mthode consiste compiler le module en tant que DLL,
savoir une bibliothque partage qui pourra tre charge dans le
serveur en cours d'excution via la directive
<code><code class="directive">LoadModule</code></code>. Ces modules DLL
peuvent tre distribus et excuts sur toute installation d'Apache
httpd pour Windows, sans avoir recompiler le serveur.</p>
<p>Pour crer un module DLL, il est ncessaire d'apporter une lgre
modification son fichier source : l'enregistrement du module doit
tre export depuis la DLL (qui sera elle-mme cre plus tard ;
voir plus loin). Pour ce faire, ajoutez la macro
<code>AP_MODULE_DECLARE_DATA</code> (dfinie dans les fichiers
d'en-ttes d'Apache httpd) la dfinition de l'enregistrement de votre
module. Par exemple, si votre module est dclar 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 prts crer une DLL contenant notre
module. Il va falloir pour cela la lier avec la bibliothque
d'export libhttpd.lib qui a t cre au cours de la compilation de
la bibliothque partage libhttpd.dll. Il sera peut-tre aussi
ncessaire de modifier la configuration du compilateur pour
s'assurer que les fichiers d'en-ttes d'Apache httpd seront correctement
localiss. Vous trouverez cette bibliothque la racine du
rpertoire 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 crer une version DLL de votre module. Il vous
suffit maintenant de l'enregistrer dans le rpertoire
<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">LoadFile</a> <a name="loadfile" id="loadfile">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Liaison du fichier objet ou de la bibliothque
spcifi</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 LoadFile permet de lier le fichier objet ou la
bibliothque spcifi au serveur lors du dmarrage ou du redmarrage
de ce dernier ; ceci permet d'ajouter tout code additionnel
ncessaire au fonctionnement d'un module.
<em>nom-fichier</em> est soit un chemin absolu, soit un chemin
relatif au rpertoire dfini 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">LoadModule</a> <a name="loadmodule" id="loadmodule">Directive</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
bibliothque spcifi, 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 LoadModule permet de lier le fichier objet ou la
bibliothque <em>nom-fichier</em> avec le serveur, et d'ajouter la
structure de module nomme <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 rfrenc comme <a href="module-dict.html#ModuleIdentifier">Identificateur de
module</a> dans la documentation des modules. Exemple :</p>
<pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
<p>charge le module spcifi depuis le sous-rpertoire 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"> en </a> |
<a href="../fr/mod/mod_so.html" title="Franais"> fr </a> |
<a href="../ja/mod/mod_so.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_so.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/mod/mod_so.html" hreflang="tr" rel="alternate" title="Trke"> tr </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&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 2014 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>
|