<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1438838 -->
+<!-- English Revision : 1525597 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
href="../handler.html">gestionnaire</a> responsable de la requête.
Le gestionnaire de base pour les fichiers normaux rejette par défaut
les requêtes avec <code>PATH_INFO</code>. Les gestionnaires qui
- servent des scripts, comme <a
+ servent des scripts, comme<a
href="mod_cgi.html">cgi-script</a> et <a
href="mod_isapi.html">isapi-handler</a>, acceptent en général par
défaut les requêtes avec <code>PATH_INFO</code>.</dd>
<p>L'utilisation de <code>syslog</code> à la place d'un nom de
fichier active la journalisation via syslogd(8) si le système le
- supporte. Le dispositif syslog par défaut est <code>local7</code>,
+ supporte et si <module>mod_syslog</module> a été chargé. Le
+ dispositif syslog par défaut est <code>local7</code>,
mais vous pouvez le modifier à l'aide de la syntaxe
<code>syslog:<var>facility</var></code>, où <var>facility</var> peut
être remplacé par un des noms habituellement documentés dans la page
<highlight language="config">ErrorLog syslog:user</highlight>
+ <p>Des modules additionnels peuvent implémenter leur propre
+ fournisseur ErrorLog. La syntaxe est similaire à l'exemple
+ <code>syslog</code> ci-dessus.</p>
+
<p>SECURITE : Voir le document <a
href="../misc/security_tips.html#serverroot">conseils à propos de
sécurité</a> pour des détails sur les raisons pour lesquelles votre
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1524240:1525479 (outdated) -->
+<!-- English Revision: 1525479 -->
<!-- French translation: Fabien Coelho -->
<!-- Updated by Lucien Gentis -->
<summary>
- <p>Ce module permet de définir et d'utiliser des macros dans les fichiers
- de configuration Apache. Ces macros peuvent avoir des paramètres qui sont
- expansés à l'utilisation (les paramètres sont remplacés par la valeur
- passée en argument), et le résultat de la substitution est traité
- normalement.</p>
+ <p>Ce module permet d'utiliser des macros dans les fichiers de
+ configuration à l'exécution du serveur HTTP Apache afin de faciliter
+ la création de nombreux blocs de configuration similaires. Quand le
+ serveur démarre, les macros sont exécutées avec les paramètres
+ fournis, et le résultat obtenu est traité au même titre que le reste
+ du fichier de configuration.</p>
+
</summary>
-<section id="features"><title>Caractéristiques</title>
-
- <p>Définition d'une macro :</p>
- <ul>
- <li> dans une section <Macro> au style conforme à la
- syntaxe des fichiers de configuration Apache.</li>
- <li> l'utilisateur choisit le nom de la macro et de ses paramètres.</li>
- <li> les noms de macro sont insensibles à la casse, comme les directives Apache.</li>
- <li> les noms de paramètres sont par contre sensibles à la casse.</li>
- <li> les paramètres d'une macro doivent avoir des noms distincts.</li>
- <li> il y a une erreur si un paramètre a un nom vide.</li>
- <li> la redéfinition d'une macro génère un avertissement.</li>
- <li> des définitions de macros peuvent être imbriquées les unes dans les autres... (mais dans quel but ?)</li>
- <li> les paramètres inutilisés génèrent un avertissement.</li>
- <li> les noms de paramètre en préfixe les uns des autres génèrent un avertissement.</li>
- <li> les noms de paramètre non préfixés par un des caractères '<code>$%@</code>' génèrent un
- avertissement pour encourager cette bonne pratique.</li>
- <li> les différents préfixes proposés permettent de gérer les interactions
- avec d'autres directives comme <directive module="core">Define</directive>.</li>
- <li> un conseil : il peut être utile d'ajouter des accolades autour du nom d'un
- paramètre, par exemple <code>${foo}</code>, de manière à ce que le
- paramètre puisse être utilisé entouré de caractères,
- par exemple <code>bla${foo}bla</code>.</li>
- <li> génère un avertissement si le contenu de la macro est vide.</li>
- <li> génère un avertissement si le système détecte que les sections à l'intérieur
- d'une macro ne sont pas correctement imbriquées.</li>
- <li> la portée lexicale des paramètres d'une macro est restreinte au texte
- de la macro elle-même... en particulier elle n'est pas propagée aux inclusions.</li>
- <li> il n'y a pas de contrainte sur le contenu d'une macro.
- <p>Cela signifie que vous pouvez mettre une section perl ou n'importe
- quoi d'autre dans une macro. Il n'y a pas d'autre contrainte sur la
- structure lexicale et syntaxique de la macro (guillemets, espaces...)
- que d'attendre une séquence de ligne avec éventuellement des
- continuations.</p></li>
- </ul>
-
- <p>Utilisation d'une macro:</p>
- <ul>
- <li> le nombre d'arguments doit être cohérent avec la définition.</li>
- <li> toutes les occurences des paramètres sont substituées par leur valeur.</li>
- <li> en cas de conflit, le nom le plus long est choisi.</li>
- <li> une récursion dans l'expansion d'une macro est détectée et interrompue avec envoi d'un message d'erreur.</li>
- <li> si un argument vide est détecté, un avertissement est généré.</li>
- <li> le système s'efforce de générer une description précise de la localisation des erreurs.</li>
- <li> les valeurs des paramètres préfixées par <code>$</code> et <code>%</code> ne sont pas échappées.</li>
- <li> les valeurs des paramètres préfixées par <code>@</code> sont échappées par des guillemets.</li>
- </ul>
-
- <p>Suppression de la définition d'une macro :</p>
- <ul>
- <li> la macro supprimée doit avoir été définie auparavant.</li>
- </ul>
+<section id="usage"><title>Utilisation</title>
+<p>On définit une macro à l'aide des blocs <directive
+type="section">Macro</directive> qui contiennent la portion de votre
+configuration qui intervient de manière répétitive, y compris les
+variables pour les parties qui devront être substituées.</p>
+
+<p>Par exemple, vous pouvez utiliser une macro pour définir un bloc
+<directive type="section">VirtualHost</directive>, afin de pouvoir
+définir de nombreux serveurs virtuels similaires :</p>
<highlight language="config">
-<Macro DirGroup $dir $group>
- <Directory $dir>
- require group $group
- </Directory>
+<Macro VHost $name $domain>
+<VirtualHost *:80>
+ ServerName $domain
+ ServerAlias www.$domain
+
+ DocumentRoot /var/www/vhosts/$name
+ ErrorLog /var/log/httpd/$name.error_log
+ CustomLog /var/log/httpd/$name.access_log combined
+>/VirtualHost>
</Macro>
+</highlight>
-Use DirGroup /www/apache/private private
-Use DirGroup /www/apache/server admin
+<p>Comme les directives de configuration httpd, les noms des macros sont
+insensibles à la casse, à la différence des variables qui y sont, elles,
+sensibles.</p>
-UndefMacro DirGroup
+<p>Vous pouvez alors invoquer cette macro autant de fois que vous le
+voulez pour créer des serveurs virtuels </p>
+
+<highlight language="config">
+Use VHost example example.com
+Use VHost myhost hostname.org
+Use VHost apache apache.org
+
+UndefMacro VHost
</highlight>
+
+<p>Au démarrage du serveur, chacune de ces invocations
+<directive>Use</directive> sera remplacée par une définition de serveur
+virtuel complète, comme décrit dans la définition de la
+<directive>Macro</directive>.</p>
+
+<p>La directive <directive>UndefMacro</directive> permet d'éviter les
+conflits de définitions qui pourraient provenir de l'utilisation
+ultérieure de macros contenant les mêmes noms de variables.</p>
+
+<p>Vous trouverez une version plus élaborée de cet exemple plus loin
+dans la section Exemples.</p>
+
</section>
-<section id="examples"><title>Exemples</title>
+<section id="tips"><title>Conseils</title>
+
+<p>Les noms de paramètres doivent commencer par un sigil tel que
+<code>$</code>, <code>%</code>, ou <code>@</code>, de façon à ce qu'ils
+soient clairement identifiables, mais aussi afin de faciliter les
+interactions avec les autres directives, comme la directive de base
+<directive module="core">Define</directive>. Dans le cas contraire, vous
+recevrez un avertissement. En tout état de cause, il est conseillé
+d'avoir une bonne connaissance globale de la configuration du serveur,
+afin d'éviter la réutilisation des mêmes variables à différents niveaux,
+ce qui peut être à l'origine de confusions.</p>
+
+<p>Les paramètres préfixés par <code>$</code> ou <code>%</code> ne sont
+pas échappés. Les paramètres préfixés par <code>@</code> sont échappés
+entre guillemets.</p>
+
+<p>Evitez de préfixer un paramètre par le nom d'un autre paramètre (par
+exemple, présence simultanée des paramètres <code>$win</code> et
+<code>$winter</code>), car ceci peut introduire de la confusion lors de
+l'évaluation des expressions. Si cela se produit, c'est le nom de
+paramètre le plus long possible qui sera utilisé.</p>
+
+<p>Si vous désirez insérer une valeur dans une chaîne, il est conseillé
+de l'entourer d'accolades afin d'éviter toute confusion :</p>
+
+<highlight language="config">
+<Macro DocRoot ${docroot}>
+ DocumentRoot /var/www/${docroot}/htdocs
+</Macro>
+</highlight>
+
+</section>
+
+<section id="examples">
+<title>Exemples</title>
+
+<section>
+<title>Définition de serveurs virtuels</title>
<p>Un exemple typique d'utilisation de <module>mod_macro</module> est la
création dynamique de serveurs virtuels.</p>
ServerName $host
DocumentRoot $dir
+ # Racine des documents publique
<Directory $dir>
- # directives propres au répertoire $dir ...
+ Require all granted
</Directory>
# restriction d'accès au sous-répertoire intranet.
Use VHost example.org 8080 /vhosts/example/htdocs
Use VHost www.example.fr 1234 /vhosts/example.fr/htdocs
</highlight>
+</section> <!-- Vhosts -->
-</section>
+<section>
+<title>Suppression d'une définition de macro</title>
+
+<p>Il est recommandé de supprimer la définition d'une macro après
+l'avoir utilisée. Ceci permet d'éviter les confusions au sein d'un
+fichier de configuration complexe où des conflits entre noms de
+variables peuvent survenir.</p>
+
+<highlight language="config">
+<Macro DirGroup $dir $group>
+ <Directory $dir>
+ Require group $group
+ </Directory>
+</Macro>
+
+Use DirGroup /www/apache/private private
+Use DirGroup /www/apache/server admin
+
+UndefMacro DirGroup
+</highlight>
+
+</section> <!-- UndefMacro -->
+
+</section> <!-- Example -->
<!-- Macro -->
<directivesynopsis type="section">
</highlight>
</usage>
</directivesynopsis>
+
</modulesynopsis>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English revision : 1328589 -->
+<!-- English revision : 1525489 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<tr><th>Version</th>
<th>Source</th>
<th>Description</th>
- <th>Navigateurs supportés</th></tr>
+ </tr>
<tr><td>SSL v2.0</td>
<td>Standard du fournisseur (de Netscape Corp.)</td>
<td>Premier protocole SSL pour lequel il existe des implémentations</td>
- <td>- NS Navigator 1.x/2.x<br />
- - MS IE 3.x<br />
- - Lynx/2.8+OpenSSL</td></tr>
+ </tr>
<tr><td>SSL v3.0</td>
<td>Projet Internet arrivé à expiration (de Netscape Corp.) [<a href="#SSL3"
>SSL3</a>]</td>
<td>Comporte des révisions permettant de prévenir certaines attaques de
sécurité spécifiques, ajout de chiffrements non RSA, et support des
chaînes de certification</td>
- <td>- NS Navigator 2.x/3.x/4.x<br />
- - MS IE 3.x/4.x<br />
- - Lynx/2.8+OpenSSL</td></tr>
+ </tr>
<tr><td>TLS v1.0</td>
<td>Standard proposé pour l'Internet (de l'IETF) [<a href="#TLS1"
>TLS1</a>]</td>
<td>Révision de SSL 3.0 pour mettre à jour la couche MAC vers HMAC,
ajout du bourrage de bloc pour le chiffrement de bloc, standardisation
de l'ordonnancement des messages et plus de messages d'alerte.</td>
- <td>- Lynx/2.8+OpenSSL</td></tr>
- <tr><td>TLS v1.1</td>
+ </tr>
+ <tr><td>TLS v1.1</td>
<td>Standard proposé pour l'Internet (de l'IETF) [<a href="#TLS11"
>TLS11</a>]</td>
<td>Mise à jour de TLS 1.0 pour la protection contre les
attaques de type Cipher block chaining (CBC).</td>
- <td>-</td></tr>
+ </tr>
<tr><td>TLS v1.2</td>
<td>Standard proposé pour l'Internet (de l'IETF) [<a href="#TLS12"
>TLS12</a>]</td>
<td>Mise à jour de TLS 1.2 rendant les condensés MD5 obsolètes,
et introduisant une incompatibilité avec SSL ce qui interdit toute
négociation en vue d'une utilisation de SSLv2.</td>
- <td>-</td></tr>
+ </tr>
</table>
</section>