]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_macro.html.fr
Makefile.in: merge typo fix from test-integration branch
[apache] / docs / manual / mod / mod_macro.html.fr
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
4 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
5 <!--
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7               This file is generated from xml source: DO NOT EDIT
8         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9       -->
10 <title>mod_macro - Serveur Apache HTTP Version 2.5</title>
11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <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" />
14 <script src="../style/scripts/prettify.min.js" type="text/javascript">
15 </script>
16
17 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
18 <body>
19 <div id="page-header">
20 <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>
21 <p class="apache">Serveur Apache HTTP Version 2.5</p>
22 <img alt="" src="../images/feather.png" /></div>
23 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
24 <div id="path">
25 <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="./">Modules</a></div>
26 <div id="page-content">
27 <div id="preamble"><h1>Module Apache mod_macro</h1>
28 <div class="toplang">
29 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_macro.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
30 <a href="../fr/mod/mod_macro.html" title="Français">&nbsp;fr&nbsp;</a></p>
31 </div>
32 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Ce module permet d'utiliser des macros dans les fichiers
33 de configuration Apache.</td></tr>
34 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
35 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>macro_module</td></tr>
36 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_macro.c</td></tr></table>
37 <h3>Sommaire</h3>
38
39
40     <p>Ce module permet d'utiliser des macros dans les fichiers de
41     configuration à l'exécution du serveur HTTP Apache afin de faciliter
42     la création de nombreux blocs de configuration similaires. Quand le
43     serveur démarre, les macros sont exécutées avec les paramètres
44     fournis, et le résultat obtenu est traité au même titre que le reste
45     du fichier de configuration.</p>
46
47 </div>
48 <div id="quickview"><h3>Sujets</h3>
49 <ul id="topics">
50 <li><img alt="" src="../images/down.gif" /> <a href="#usage">Utilisation</a></li>
51 <li><img alt="" src="../images/down.gif" /> <a href="#tips">Conseils</a></li>
52 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
53 </ul><h3 class="directives">Directives</h3>
54 <ul id="toc">
55 <li><img alt="" src="../images/down.gif" /> <a href="#macro">&lt;Macro&gt;</a></li>
56 <li><img alt="" src="../images/down.gif" /> <a href="#macroignorebadnesting">MacroIgnoreBadNesting</a></li>
57 <li><img alt="" src="../images/down.gif" /> <a href="#macroignoreemptyargs">MacroIgnoreEmptyArgs</a></li>
58 <li><img alt="" src="../images/down.gif" /> <a href="#undefmacro">UndefMacro</a></li>
59 <li><img alt="" src="../images/down.gif" /> <a href="#use">Use</a></li>
60 </ul>
61 <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_macro">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_macro">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
62 <ul class="seealso">
63 <li><a href="#comments_section">Commentaires</a></li></ul></div>
64 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
65 <div class="section">
66 <h2><a name="usage" id="usage">Utilisation</a></h2>    
67 <p>On définit une macro à l'aide des blocs <code class="directive"><a href="#macro">&lt;Macro&gt;</a></code> qui contiennent la portion de votre
68 configuration qui intervient de manière répétitive, y compris les
69 variables pour les parties qui devront être substituées.</p>
70
71 <p>Par exemple, vous pouvez utiliser une macro pour définir un bloc
72 <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>, afin de pouvoir
73 définir de nombreux serveurs virtuels similaires :</p>    
74
75     <pre class="prettyprint lang-config">&lt;Macro VHost $name $domain&gt;
76 &lt;VirtualHost *:80&gt;
77     ServerName $domain
78     ServerAlias www.$domain
79
80     DocumentRoot "/var/www/vhosts/$name"
81     ErrorLog "/var/log/httpd/$name.error_log"
82     CustomLog "/var/log/httpd/$name.access_log" combined
83 &lt;/VirtualHost&gt;
84 &lt;/Macro&gt;</pre>
85
86
87 <p>Comme les directives de configuration httpd, les noms des macros sont
88 insensibles à la casse, à la différence des variables qui y sont, elles,
89 sensibles.</p>
90
91 <p>Vous pouvez alors invoquer cette macro autant de fois que vous le
92 voulez pour créer des serveurs virtuels </p>
93
94 <pre class="prettyprint lang-config">Use VHost example example.com
95 Use VHost myhost hostname.org
96 Use VHost apache apache.org
97
98 UndefMacro VHost</pre>
99
100
101 <p>Au démarrage du serveur, chacune de ces invocations
102 <code class="directive"><a href="#use">Use</a></code> sera remplacée par une définition de serveur
103 virtuel complète, comme décrit dans la définition de la
104 <code class="directive"><a href="#macro">&lt;Macro&gt;</a></code>.</p>
105
106 <p>La directive <code class="directive"><a href="#undefmacro">UndefMacro</a></code> permet d'éviter les
107 conflits de définitions qui pourraient provenir de l'utilisation
108 ultérieure de macros contenant les mêmes noms de variables.</p>
109
110 <p>Vous trouverez une version plus élaborée de cet exemple plus loin
111 dans la section Exemples.</p>
112
113 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
114 <div class="section">
115 <h2><a name="tips" id="tips">Conseils</a></h2>
116
117 <p>Les noms de paramètres doivent commencer par un sigil tel que
118 <code>$</code>, <code>%</code>, ou <code>@</code>, de façon à ce qu'ils
119 soient clairement identifiables, mais aussi afin de faciliter les
120 interactions avec les autres directives, comme la directive de base
121 <code class="directive"><a href="../mod/core.html#define">Define</a></code>. Dans le cas contraire, vous
122 recevrez un avertissement. En tout état de cause, il est conseillé
123 d'avoir une bonne connaissance globale de la configuration du serveur,
124 afin d'éviter la réutilisation des mêmes variables à différents niveaux,
125 ce qui peut être à l'origine de confusions.</p>
126
127 <p>Les paramètres préfixés par <code>$</code> ou <code>%</code> ne sont
128 pas échappés. Les paramètres préfixés par <code>@</code> sont échappés
129 entre guillemets.</p>
130
131 <p>Evitez de préfixer un paramètre par le nom d'un autre paramètre (par
132 exemple, présence simultanée des paramètres <code>$win</code> et
133 <code>$winter</code>), car ceci peut introduire de la confusion lors de
134 l'évaluation des expressions. Si cela se produit, c'est le nom de
135 paramètre le plus long possible qui sera utilisé.</p>
136
137 <p>Si vous désirez insérer une valeur dans une chaîne, il est conseillé
138 de l'entourer d'accolades afin d'éviter toute confusion :</p>
139
140 <pre class="prettyprint lang-config">&lt;Macro DocRoot ${docroot}&gt;
141     DocumentRoot "/var/www/${docroot}/htdocs"
142 &lt;/Macro&gt;</pre>
143
144
145 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
146 <div class="section">
147 <h2><a name="examples" id="examples">Exemples</a></h2>
148
149
150 <h3>Définition de serveurs virtuels</h3>
151
152
153 <p>Un exemple typique d'utilisation de <code class="module"><a href="../mod/mod_macro.html">mod_macro</a></code> est la
154 création dynamique de serveurs virtuels.</p>
155
156 <pre class="prettyprint lang-config">## Définition d'une macro VHost pour les configurations répétitives
157
158 &lt;Macro VHost $host $port $dir&gt;
159   Listen $port
160   &lt;VirtualHost *:$port&gt;
161
162     ServerName $host
163     DocumentRoot "$dir"
164
165     # Racine des documents publique
166     &lt;Directory "$dir"&gt;
167       Require all granted
168     &lt;/Directory&gt;
169
170     # restriction d'accès au sous-répertoire intranet.
171     &lt;Directory "$dir/intranet"&gt;
172       Require ip 10.0.0.0/8
173     &lt;/Directory&gt;
174   &lt;/VirtualHost&gt;
175 &lt;/Macro&gt;
176
177 ## Utilisation de la macro VHost avec différents arguments.
178
179 Use VHost www.apache.org 80 /vhosts/apache/htdocs
180 Use VHost example.org 8080 /vhosts/example/htdocs
181 Use VHost www.example.fr 1234 /vhosts/example.fr/htdocs</pre>
182
183  
184
185 <h3>Suppression d'une définition de macro</h3>
186
187
188 <p>Il est recommandé de supprimer la définition d'une macro après
189 l'avoir utilisée. Ceci permet d'éviter les confusions au sein d'un
190 fichier de configuration complexe où des conflits entre noms de
191 variables peuvent survenir.</p>
192
193 <pre class="prettyprint lang-config">&lt;Macro DirGroup $dir $group&gt;
194   &lt;Directory "$dir"&gt;
195     Require group $group
196   &lt;/Directory&gt;
197 &lt;/Macro&gt;
198
199 Use DirGroup /www/apache/private private
200 Use DirGroup /www/apache/server  admin
201
202 UndefMacro DirGroup</pre>
203
204
205  
206
207 </div>
208 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
209 <div class="directive-section"><h2><a name="macro" id="macro">Directive</a> <a name="Macro" id="Macro">&lt;Macro&gt;</a></h2>
210 <table class="directive">
211 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définition d'une macro dans un fichier de configuration</td></tr>
212 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>
213 &lt;Macro <var>nom</var> [<var>par1</var> .. <var>parN</var>]&gt;
214 ... &lt;/Macro&gt;</code></td></tr>
215 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
216 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
217 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
218 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
219 </table>
220     <p>La directive <code class="directive">&lt;Macro&gt;</code> permet de définir une macro
221     dans un fichier de configuration Apache. Le premier argument est le nom
222     de la macro, et les arguments suivants sont les paramètres. Il
223     est de bon aloi de préfixer les noms des paramètres d'une macro
224     avec un caractère parmi '<code>$%@</code>', et d'éviter d'en faire
225     de même avec les noms de macros.
226     </p>
227
228     <pre class="prettyprint lang-config">&lt;Macro LocalAccessPolicy&gt;
229   Require ip 10.2.16.0/24
230 &lt;/Macro&gt;
231
232 &lt;Macro RestrictedAccessPolicy $ipnumbers&gt;
233    Require ip $ipnumbers
234 &lt;/Macro&gt;</pre>
235
236
237 </div>
238 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
239 <div class="directive-section"><h2><a name="macroignorebadnesting" id="macroignorebadnesting">Directive</a> <a name="MacroIgnoreBadNesting" id="MacroIgnoreBadNesting">MacroIgnoreBadNesting</a></h2>
240 <table class="directive">
241 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ignore les avertissements et n'inscrit rien dans le journal à
242 propos d'une imbrication de Macros non conforme</td></tr>
243 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MacroIgnoreBadNesting</code></td></tr>
244 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
245 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
246 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
247 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
248 </table>
249 </div>
250 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
251 <div class="directive-section"><h2><a name="macroignoreemptyargs" id="macroignoreemptyargs">Directive</a> <a name="MacroIgnoreEmptyArgs" id="MacroIgnoreEmptyArgs">MacroIgnoreEmptyArgs</a></h2>
252 <table class="directive">
253 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ignore les avertissements et n'inscrit rien dans le journal à
254 propos des arguments de Macro vides</td></tr>
255 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MacroIgnoreEmptyArgs</code></td></tr>
256 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
257 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
258 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
259 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
260 </table>
261 </div>
262 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
263 <div class="directive-section"><h2><a name="undefmacro" id="undefmacro">Directive</a> <a name="UndefMacro" id="UndefMacro">UndefMacro</a></h2>
264 <table class="directive">
265 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Supprime une macro</td></tr>
266 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>UndefMacro <var>nom</var></code></td></tr>
267 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
268 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
269 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
270 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
271 </table>
272     <p>La directive <code class="directive">UndefMacro</code> annule la définition
273     d'une macro qui doit avoir été définie auparavant.</p>
274
275     <pre class="prettyprint lang-config">UndefMacro LocalAccessPolicy
276 UndefMacro RestrictedAccessPolicy</pre>
277
278
279 </div>
280 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
281 <div class="directive-section"><h2><a name="use" id="use">Directive</a> <a name="Use" id="Use">Use</a></h2>
282 <table class="directive">
283 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilisation d'une macro</td></tr>
284 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Use <var>nom</var> [<var>valeur1</var> ... <var>valeurN</var>]
285 </code></td></tr>
286 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
287 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
288 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
289 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
290 </table>
291     <p> La directive <code class="directive">Use</code> permet d'utiliser une macro.
292     La macro considérée est expansée. Son nombre d'arguments doit être égal au
293     nombre de paramètres précisés dans sa définition. Les valeurs passées en
294     argument sont attribuées aux paramètres correspondants et
295     substituées avant l'interprétation du texte de la macro.</p>
296
297     <pre class="prettyprint lang-config">Use LocalAccessPolicy
298 ...
299 Use RestrictedAccessPolicy "192.54.172.0/24 192.54.148.0/24"</pre>
300
301
302     <p>est équivalent, avec les macros définies ci-dessus à :</p>
303
304     <pre class="prettyprint lang-config">Require ip 10.2.16.0/24
305 ...
306 Require ip 192.54.172.0/24 192.54.148.0/24</pre>
307
308
309 </div>
310 </div>
311 <div class="bottomlang">
312 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_macro.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
313 <a href="../fr/mod/mod_macro.html" title="Français">&nbsp;fr&nbsp;</a></p>
314 </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>
315 <script type="text/javascript"><!--//--><![CDATA[//><!--
316 var comments_shortname = 'httpd';
317 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_macro.html';
318 (function(w, d) {
319     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
320         d.write('<div id="comments_thread"><\/div>');
321         var s = d.createElement('script');
322         s.type = 'text/javascript';
323         s.async = true;
324         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
325         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
326     }
327     else {
328         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
329     }
330 })(window, document);
331 //--><!]]></script></div><div id="footer">
332 <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>
333 <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[//><!--
334 if (typeof(prettyPrint) !== 'undefined') {
335     prettyPrint();
336 }
337 //--><!]]></script>
338 </body></html>