]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_so.xml.fr
ye gods what have I done
[apache] / docs / manual / mod / mod_so.xml.fr
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1433861 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <modulesynopsis metafile="mod_so.xml.meta">
26
27 <name>mod_so</name>
28 <description>Chargement de modules ou de code ex&eacute;cutable au cours du
29 d&eacute;marrage ou du red&eacute;marrage du serveur</description>
30 <status>Extension</status>
31 <sourcefile>mod_so.c</sourcefile>
32 <identifier>so_module</identifier>
33 <compatibility>Sous Windows, c'est un module de base (toujours
34 inclus)</compatibility>
35
36 <summary>
37
38     <p>Sur les syst&egrave;mes d'exploitation s&eacute;lectionn&eacute;s, ce module peut &ecirc;tre
39     utilis&eacute; pour charger des modules dans le serveur HTTP Apache en cours d'ex&eacute;cution
40     gr&acirc;ce au m&eacute;canisme des <a
41     href="../dso.html">Dynamic Shared Object ou Objets Partag&eacute;s
42     Dynamiquement</a> (DSO), et &eacute;vite ainsi de devoir effectuer une
43     recompilation.</p>
44
45     <p>Sous Unix, le code charg&eacute; provient en g&eacute;n&eacute;ral de fichiers objet
46     partag&eacute;s poss&egrave;dant en g&eacute;n&eacute;ral l'extension <code>.so</code>, alors
47     que sous Windows, l'extension peut &ecirc;tre soit <code>.so</code>, soit
48     <code>.dll</code>.</p>
49
50     <note type="warning"><title>Avertissement</title>
51     <p>En g&eacute;n&eacute;ral, les modules compil&eacute;s pour une version majeure du
52     serveur HTTP Apache ne fonctionneront pas avec une autre (par
53     exemple de 1.3 &agrave; 2.0 ou 2.0 &agrave; 2.2). D'une version majeure &agrave; l'autre,
54     il y a souvent des modifications d'API qui n&eacute;cessitent des
55     modifications du module pour qu'il puisse fonctionner avec la
56     nouvelle version.</p>
57     </note>
58 </summary>
59
60 <section id="windows"><title>Cr&eacute;ation de modules chargeables pour
61 Windows</title>
62
63     <note><title>Note</title>
64     <p>Sous Windows, o&ugrave; les modules chargeables poss&egrave;dent en g&eacute;n&eacute;ral
65     l'extension de nom de fichier <code>.dll</code>, les modules Apache
66     httpd se nomment <code>mod_nom-module.so</code>, tout comme sur les
67     autres plates-formes. Vous trouverez cependant encore des modules
68     tiers, comme PHP par exemple, qui continuent d'utiliser la
69     convention de nommage avec extension <code>.dll</code>.</p>
70
71     <p>Bien que <code>mod_so</code> puisse encore charger des modules
72     poss&egrave;dant un nom du style <code>ApacheModuleFoo.dll</code>,
73     il est pr&eacute;f&eacute;rable d'utiliser la
74     nouvelle convention de nommage ; si vous modifiez votre module
75     chargeable pour la version 2.0, veuillez aussi modifier son nom pour
76     respecter cette nouvelle convention.</p></note>
77
78     <p>Les API des modules Apache httpd sous Unix et Windows sont identiques.
79     Alors que certains modules s'appuient sur certains
80     aspects de l'architecture Unix non pr&eacute;sents dans Windows, et ne
81     fonctionneront donc pas sur cette derni&egrave;re plate-forme, de nombreux
82     modules fonctionnent sous Windows avec peu ou pas de modification
83     par rapport &agrave; leur version Unix.</p>
84
85     <p>Lorsqu'un module fonctionne, il peut &ecirc;tre ajout&eacute; au serveur de
86     deux mani&egrave;res. Sous Unix, il peut &ecirc;tre compil&eacute; dans le serveur.
87     Comme Apache httpd pour Windows ne dispose pas du programme
88     <code>Configure</code> propre &agrave; Apache httpd pour Unix, le fichier source
89     du module doit &ecirc;tre ajout&eacute; au fichier projet Apache de base, et ses
90     symboles ajout&eacute;s au fichier <code>os\win32\modules.c</code>.</p>
91
92     <p>La seconde m&eacute;thode consiste &agrave; compiler le module en tant que DLL,
93     &agrave; savoir une biblioth&egrave;que partag&eacute;e qui pourra &ecirc;tre charg&eacute;e dans le
94     serveur en cours d'ex&eacute;cution via la directive
95     <code><directive>LoadModule</directive></code>. Ces modules DLL
96     peuvent &ecirc;tre distribu&eacute;s et ex&eacute;cut&eacute;s sur toute installation d'Apache
97     httpd pour Windows, sans avoir &agrave; recompiler le serveur.</p>
98
99     <p>Pour cr&eacute;er un module DLL, il est n&eacute;cessaire d'apporter une l&eacute;g&egrave;re
100     modification &agrave; son fichier source : l'enregistrement du module doit
101     &ecirc;tre export&eacute; depuis la DLL (qui sera elle-m&ecirc;me cr&eacute;&eacute;e plus tard ;
102     voir plus loin). Pour ce faire, ajoutez la macro
103     <code>AP_MODULE_DECLARE_DATA</code> (d&eacute;finie dans les fichiers
104     d'en-t&ecirc;tes d'Apache httpd) &agrave; la d&eacute;finition de l'enregistrement de votre
105     module. Par exemple, si votre module est d&eacute;clar&eacute; comme suit :</p>
106
107 <example>
108     module foo_module;
109 </example>
110
111     <p>Remplacez cette ligne par :</p>
112 <example>
113     module AP_MODULE_DECLARE_DATA foo_module;
114 </example>
115
116     <p>Notez que cette macro ne sera prise en compte que sous Windows,
117     si bien que le module poura &ecirc;tre utilis&eacute; sans changement sous Unix,
118     si besoin est. Alternativement, si vous &ecirc;tes familier avec les
119     fichiers <code>.DEF</code>, vous pouvez les utiliser pour exporter
120     l'enregistrement du module.</p>
121
122     <p>Maintenant, nous sommes pr&ecirc;ts &agrave; cr&eacute;er une DLL contenant notre
123     module. Il va falloir pour cela la lier avec la biblioth&egrave;que
124     d'export libhttpd.lib qui a &eacute;t&eacute; cr&eacute;&eacute;e au cours de la compilation de
125     la biblioth&egrave;que partag&eacute;e libhttpd.dll. Il sera peut-&ecirc;tre aussi
126     n&eacute;cessaire de modifier la configuration du compilateur pour
127     s'assurer que les fichiers d'en-t&ecirc;tes d'Apache httpd seront correctement
128     localis&eacute;s. Vous trouverez cette biblioth&egrave;que &agrave; la racine du
129     r&eacute;pertoire des modules de votre serveur. Il est souhaitable
130     d'utiliser un fichier de module .dsp existant dans l'arborescence
131     afin de s'assurer que l'environnement de compilation est
132     correctement configur&eacute;, mais vous pouvez aussi comparer les options
133     de compilation et d'&eacute;dition de liens &agrave; votre fichier .dsp.</p>
134
135     <p>Ceci devrait cr&eacute;er une version DLL de votre module. Il vous
136     suffit maintenant de l'enregistrer dans le r&eacute;pertoire
137     <code>modules</code> &agrave; la racine de votre serveur, et d'utiliser la
138     directive <directive>LoadModule</directive> pour la charger.</p>
139
140 </section>
141
142 <directivesynopsis>
143 <name>LoadFile</name>
144 <description>Liaison du fichier objet ou de la biblioth&egrave;que
145 sp&eacute;cifi&eacute;</description>
146 <syntax>LoadFile <em>nom-fichier</em> [<em>nom-fichier</em>] ...</syntax>
147 <contextlist>
148 <context>server config</context>
149 <context>virtual host</context>
150 </contextlist>
151
152 <usage>
153
154     <p>La directive LoadFile permet de lier le fichier objet ou la
155     biblioth&egrave;que sp&eacute;cifi&eacute; au serveur lors du d&eacute;marrage ou du red&eacute;marrage
156     de ce dernier ; ceci permet d'ajouter tout code additionnel
157     n&eacute;cessaire au fonctionnement d'un module.
158     <em>nom-fichier</em> est soit un chemin absolu, soit un chemin
159     relatif au r&eacute;pertoire d&eacute;fini par la directive <a
160     href="core.html#serverroot">ServerRoot</a>.</p>
161
162     <p>Par exemple:</p>
163
164     <highlight language="config">LoadFile libexec/libxmlparse.so</highlight>
165
166 </usage>
167 </directivesynopsis>
168
169 <directivesynopsis>
170 <name>LoadModule</name>
171 <description>Liaison avec le serveur du fichier objet ou de la
172 biblioth&egrave;que sp&eacute;cifi&eacute;, et ajout de ce dernier &agrave; la liste des modules
173 actifs</description>
174 <syntax>LoadModule <em>module nom-fichier</em></syntax>
175 <contextlist>
176 <context>server config</context>
177 <context>virtual host</context>
178 </contextlist>
179
180 <usage>
181     <p>La directive LoadModule permet de lier le fichier objet ou la
182     biblioth&egrave;que <em>nom-fichier</em> avec le serveur, et d'ajouter la
183     structure de module nomm&eacute;e <em>module</em> &agrave; la liste des modules
184     actifs. <em>module</em> est le nom de la variable externe de type
185     <code>module</code> dans le fichier, et est r&eacute;f&eacute;renc&eacute; comme <a
186     href="module-dict.html#ModuleIdentifier">Identificateur de
187     module</a> dans la documentation des modules. Exemple :</p>
188
189     <highlight language="config">
190       LoadModule status_module modules/mod_status.so
191     </highlight>
192
193     <p>charge le module sp&eacute;cifi&eacute; depuis le sous-r&eacute;pertoire des modules
194     situ&eacute; &agrave; la racine du serveur.</p>
195 </usage>
196
197 </directivesynopsis>
198 </modulesynopsis>
199