httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lgen...@apache.org
Subject svn commit: r1377354 - in /httpd/httpd/trunk/docs/manual: content-negotiation.xml.fr mod/mod_lua.xml.fr
Date Sat, 25 Aug 2012 20:51:18 GMT
Author: lgentis
Date: Sat Aug 25 20:51:18 2012
New Revision: 1377354

URL: http://svn.apache.org/viewvc?rev=1377354&view=rev
Log:
Updates.

Modified:
    httpd/httpd/trunk/docs/manual/content-negotiation.xml.fr
    httpd/httpd/trunk/docs/manual/mod/mod_lua.xml.fr

Modified: httpd/httpd/trunk/docs/manual/content-negotiation.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/content-negotiation.xml.fr?rev=1377354&r1=1377353&r2=1377354&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/content-negotiation.xml.fr (original)
+++ httpd/httpd/trunk/docs/manual/content-negotiation.xml.fr Sat Aug 25 20:51:18 2012
@@ -3,7 +3,7 @@
 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1331584:1364312 (outdated) -->
+<!-- English Revision : 1364312 -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more

Modified: httpd/httpd/trunk/docs/manual/mod/mod_lua.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_lua.xml.fr?rev=1377354&r1=1377353&r2=1377354&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_lua.xml.fr (original)
+++ httpd/httpd/trunk/docs/manual/mod/mod_lua.xml.fr Sat Aug 25 20:51:18 2012
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1355934:1372988 (outdated) -->
+<!-- English Revision : 1375917 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
@@ -52,6 +52,15 @@ ce qu'il passe au stade stable, et ce m&
 2.4.x. N'oublez pas de consulter le fichier CHANGES avant toute mise &agrave;
 jour.</note>
 
+<note type="warning"><title>Avertissement</title>
+<p>Ce module poss&egrave;de une grande capacit&eacute; d'action sur le fonctrionnement
+de httpd, ce qui lui conf&egrave;re une grande puissance, mais peut aussi
+induire un risque de s&eacute;curit&eacute;. Il est d&eacute;conseill&eacute;
d'utiliser ce module
+sur un serveur partag&eacute; avec des utilisateurs auxquels vous ne pouvez pas
+accorder une confiance absolue, car il peut permettre de modifier le
+fonctionnement interne de httpd.</p>
+</note>
+
 </summary>
 
 <section id="basicconf"><title>Configuration de base</title>
@@ -196,13 +205,93 @@ LuaAuthzProvider foo authz_provider.lua 
 les scripts Lua) participent au traitement des requ&ecirc;tes. Chaque type
 d'accroche propos&eacute; par le serveur a un r&ocirc;le sp&eacute;cifique, comme
 l'association de requ&ecirc;tes au syst&egrave;me de fichiers, le contr&ocirc;le
d'acc&egrave;s,
-ou la d&eacute;finition de types MIME. Il existe aussi des accroches &agrave; usage
-g&eacute;n&eacute;ral qui s'ex&eacute;cutent simplement &agrave; des moments
opportuns du cycle
-de vie de la requ&ecirc;te.</p>
-
-<p>Les fonctions d'accroche acceptent l'objet de la requ&ecirc;te comme seul
-et unique argument. Elles peuvent renvoyer une valeur, selon la
-fonction, mais il s'agit en g&eacute;n&eacute;ral d'un
+ou la d&eacute;finition de types MIME : </p>
+
+<table border="1" style="zebra">
+    <tr>
+        <th>Phase d'accroche</th>
+        <th>Directive mod_lua</th>
+        <th>Description</th>
+    </tr>
+    <tr>
+        <td>Gestionnaire rapide</td>
+        <td><directive module="mod_lua">LuaQuickHandler</directive></td>
+        <td>Il s'agit de la premi&egrave;re accroche appel&eacute;e lorsqu'une
requ&ecirc;te
+	a &eacute;t&eacute; associ&eacute;e &agrave; un serveur ou un serveur virtuel.</td>
+    </tr>
+    <tr>
+        <td>Phase de traduction</td>
+        <td><directive module="mod_lua">LuaHookTranslateName</directive></td>
+        <td>Cette phase traduit l'URI de la requ&ecirc;te en nom de fichier
+	sur le syst&egrave;me. Ce sont des modules comme
+	<module>mod_alias</module> et <module>mod_rewrite</module> qui
+	interviennent au cours de cette phase.</td>
+    </tr>
+    <tr>
+        <td>Choix du lieu de stockage de la ressource</td>
+        <td><directive module="mod_lua">LuaHookMapToStorage</directive></td>
+        <td>Cette phase d&eacute;finit le lieu de stockage de la ressource :
+	physique, en cache ou externe/mandat&eacute;. Elle est assur&eacute;e par les
+	modules de mandat ou de mise en cache.</td>
+    </tr>
+    <tr>
+        <td>Autorisation d'acc&egrave;s</td>
+        <td><directive module="mod_lua">LuaHookAccessChecker</directive></td>
+        <td>Cette phase v&eacute;rifie si un client a l'autorisation d'acc&egrave;s
&agrave;
+	la ressource. Elle s'ex&eacute;cute avant l'authentification de
+	l'utisateur ; il faut donc &ecirc;tre prudent.
+        </td>
+    </tr>
+    <tr>
+        <td>V&eacute;rification de l'identifiant utilisateur</td>
+        <td><directive module="mod_lua">LuaHookCheckUserID</directive></td>
+        <td>Cette phase v&eacute;rifie l'identifiant de l'utilisateur ayant
+	fait l'objet d'une n&eacute;gociation.</td>
+    </tr>
+    <tr>
+        <td>V&eacute;rification de l'autorisation d'acc&egrave;s</td>
+        <td><directive module="mod_lua">LuaHookAuthChecker</directive>
+	ou
+            <directive module="mod_lua">LuaAuthzProvider</directive></td>
+        <td>Cette phase v&eacute;rifie l'autorisation d'acc&egrave;s d'un utilisateur
+	en fonction des ses param&egrave;tres de connexion, comme
+	l'identifiant, le certificat, etc...
+        </td>
+    </tr>
+    <tr>
+        <td>V&eacute;rification du type de la ressource</td>
+        <td><directive module="mod_lua">LuaHookTypeChecker</directive></td>
+        <td>Cette phase assigne un type de contenu et un gestionnaire &agrave;
+	la ressource.</td>
+    </tr>
+    <tr>
+        <td>Derniers r&eacute;glages</td>
+        <td><directive module="mod_lua">LuaHookFixups</directive></td>
+        <td>C'est la derni&egrave;re phase avant l'activation des gestionnaires
+	de contenu. Toute modification de derni&egrave;re minute &agrave; la requ&ecirc;te
+	doit &ecirc;tre effectu&eacute;e ici.</td>
+    </tr>
+    <tr>
+        <td>Gestionnaire de contenu</td>
+        <td>fichiers fx. <code>.lua</code> ou directive <directive module="mod_lua">LuaMapHandler</directive></td>
+        <td>C'est durant cette phase que le contenu est trait&eacute;. Les
+	fichiers sont lus, interpr&eacute;t&eacute;s, certains sont ex&eacute;cut&eacute;s,
et le
+	r&eacute;sultat obtenu est envoy&eacute; au client.</td>
+    </tr>
+    <tr>
+        <td>Journalisation</td>
+        <td>aucune</td>
+        <td>Lorsqu'une requ&ecirc;te a &eacute;t&eacute; trait&eacute;e,
plusieurs phases de
+	journalisation interviennent, et enregistrent leurs r&eacute;sultats
+	dans les fichiers d'erreur ou d'acc&egrave;s.</td>
+    </tr>
+
+</table>
+
+<p>Les fonctions d'accroche re&ccedil;oivent l'objet de la requ&ecirc;te comme
seul
+argument (sauf LuaAuthzProvider qui re&ccedil;oit aussi des arguments en
+provenance de la directive Require). Elles peuvent renvoyer une valeur,
+selon la fonction, mais il s'agit en g&eacute;n&eacute;ral d'un
 code d'&eacute;tat HTTP ou des valeurs OK, DONE, ou DECLINED,
 que vous pouvez &eacute;crire dans lua sous la forme <code>apache2.OK</code>,
 <code>apache2.DONE</code>, ou <code>apache2.DECLINED</code>.</p>
@@ -233,8 +322,8 @@ end
 	travailler sur la substitution, y compris l'accroche translate_name
 	de base dont les tables de correspondances se basent sur DocumentRoot.
 
-     Note: actuellement, il est impossible de pr&eacute;voir si cette action
-     s'ex&eacute;cute avant ou apr&egrave;s mod_alias.
+     Note: utilisez le drapeau early/late de la directive pour
+     l'ex&eacute;cuter avant ou apr&egrave;s mod_alias.
 --]]
 
 require 'apache2'
@@ -257,167 +346,319 @@ end
         <p>request_rec est consid&eacute;r&eacute;e en tant que donn&eacute;e
utilisateur.
 	Elle poss&egrave;de une m&eacute;tatable qui vous permet d'accomplir des
 	choses int&eacute;ressantes. Pour la plus grande partie, elle poss&egrave;de
-	les m&ecirc;mes champs que la structure request_rec (voir httpd.h en
-	attendant que cette documentation soit plus compl&egrave;te), la
+	les m&ecirc;mes champs que la structure request_rec, la
 	plupart d'entre eux &eacute;tant accessibles en lecture et &eacute;criture (le
 	contenu des champs de la table peut &ecirc;tre modifi&eacute;, mais les
 	champs eux-m&ecirc;mes ne peuvent pas &ecirc;tre &eacute;tablis en tant que
tables
 	distinctes).</p>
 
-	<table border="1">
+	<table border="1" style="zebra">
 
         <tr>
           <th><strong>Nom</strong></th>
           <th><strong>Type Lua</strong></th>
           <th><strong>Modifiable</strong></th>
+	  <th><strong>Description</strong></th>
+        </tr>
+        <tr>
+          <td><code>allowoverrides</code></td>
+          <td>string</td>
+          <td>non</td>
+          <td>L'option AllowOverride s'applique &agrave; la requ&ecirc;te courante.</td>
         </tr>
         <tr>
           <td><code>ap_auth_type</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>Ce champ contient le type d'authentification effectu&eacute;e
+	  (par exemple <code>basic</code>)</td>
         </tr>
         <tr>
           <td><code>args</code></td>
           <td>string</td>
           <td>oui</td>
+	  <td>La cha&icirc;ne de param&egrave;tres de la requ&ecirc;te (par exemple
+	  <code>foo=bar&amp;name=johnsmith</code>)</td>
         </tr>
         <tr>
           <td><code>assbackwards</code></td>
           <td>boolean</td>
           <td>non</td>
+	  <td>contient true s'il s'agit d'une requ&ecirc;te de style HTTP/0.9
+	  (par exemple <code>GET /foo</code> (sans champs d'en-t&ecirc;te) )</td>
+        </tr>
+        <tr>
+          <td><code>auth_name</code></td>
+          <td>string</td>
+          <td>non</td>
+          <td>La cha&icirc;ne d'identification utilis&eacute;e pour la v&eacute;rification
+	  de l'autorisation d'acc&egrave;s (si elle est disponible).</td>
+        </tr>
+        <tr>
+          <td><code>banner</code></td>
+          <td>string</td>
+          <td>non</td>
+          <td>La banni&egrave;re du serveur, par exemple <code>Apache HTTP
+	  Server/2.4.3 openssl/0.9.8c</code></td>
+        </tr>
+        <tr>
+          <td><code>basic_auth_pw</code></td>
+          <td>string</td>
+          <td>non</td>
+          <td>Le mot de passe pour l'authentification de base envoy&eacute;
+	  avec la requ&ecirc;te, s'il existe</td>
         </tr>
-
         <tr>
           <td><code>canonical_filename</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>Le nom de fichier canonique de la requ&ecirc;te</td>
         </tr>
         <tr>
           <td><code>content_encoding</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>Le type de codage du contenu de la requ&ecirc;te courante</td>
         </tr>
         <tr>
           <td><code>content_type</code></td>
           <td>string</td>
           <td>oui</td>
+	  <td>Le type de contenu de la requ&ecirc;te courante, tel qu'il a &eacute;t&eacute;
+	  d&eacute;termin&eacute; au cours de la phase type_check (par exemple
+	  <code>image/gif</code> ou <code>text/html</code>)</td>
         </tr>
 
 	<tr>
           <td><code>context_prefix</code></td>
           <td>string</td>
           <td>non</td>
+	  <td></td>
         </tr>
         <tr>
           <td><code>context_document_root</code></td>
           <td>string</td>
           <td>non</td>
+	  <td></td>
         </tr>
 
         <tr>
           <td><code>document_root</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>La racine des documents du serveur</td>
         </tr>
         <tr>
           <td><code>err_headers_out</code></td>
           <td>table</td>
           <td>non</td>
+	  <td>L'en-t&ecirc;te MIME de l'environnement pour la r&eacute;ponse, &eacute;crit
+	  m&ecirc;me en cas d'erreur et conserv&eacute; pendant les redirections
+	  internes</td>
         </tr>
         <tr>
           <td><code>filename</code></td>
           <td>string</td>
           <td>oui</td>
+	  <td>Le nom de fichier correspondant &agrave; la requ&ecirc;te, par exemple
+	  /www/example.com/foo.txt. Il peut &ecirc;tre modifi&eacute; au cours des
+	  phases translate-name ou map-to-storage du traitement de la
+	  requ&ecirc;te pour permettre au gestionnaire par d&eacute;faut (ou aux
+	  gestionnaires de script) de servir une version du fichier
+	  autre que celle demand&eacute;e.</td>
         </tr>
         <tr>
           <td><code>handler</code></td>
           <td>string</td>
           <td>oui</td>
+	  <td>Le nom du <a href="../handler.html">gestionnaire</a> qui
+	  doit traiter la requ&ecirc;te, par exemple <code>lua-script</code>
+	  si elle doit &ecirc;tre trait&eacute;e par mod_lua. Cette valeur est en
+	  g&eacute;n&eacute;ral d&eacute;finie via les directives <directive
+	  module="mod_mime">AddHandler</directive> ou <directive
+	  module="core">SetHandler</directive>, mais peut aussi l'&ecirc;tre
+	  via mod_lua pour permettre &agrave; un autre gestionnaire de traiter
+	  une requ&ecirc;te sp&eacute;cifique qui ne serait pas trait&eacute;e par d&eacute;faut
+	  par ce dernier.
+            </td>
         </tr>
         <tr>
 	  <td><code>headers_in</code></td>
           <td>table</td>
           <td>oui</td>
+	  <td>Les en-t&ecirc;tes MIME de l'environnement de la requ&ecirc;te. Il
+	  s'agit des en-t&ecirc;tes comme <code>Host, User-Agent,
+	  Referer</code>, etc...</td>
         </tr>
         <tr>
           <td><code>headers_out</code></td>
           <td>table</td>
           <td>oui</td>
+	  <td>Les en-t&ecirc;tes MIME de l'environnement de la r&eacute;ponse.</td>
         </tr>
         <tr>
           <td><code>hostname</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>Le nom d'h&ocirc;te, tel que d&eacute;fini par l'en-t&ecirc;te
+	  <code>Host:</code> ou par un URI complet.</td>
+        </tr>
+        <tr>
+          <td><code>is_https</code></td>
+          <td>boolean</td>
+          <td>non</td>
+          <td>Indique si la requ&ecirc;te &agrave; &eacute;t&eacute;
faite via HTTPS</td>
+        </tr>
+        <tr>
+          <td><code>is_initial_req</code></td>
+          <td>boolean</td>
+          <td>non</td>
+          <td>Indique si la requ&ecirc;te courante est la requ&ecirc;te initiale
ou
+	  une sous-requ&ecirc;te.</td>
+        </tr>
+        <tr>
+          <td><code>limit_req_body</code></td>
+          <td>number</td>
+          <td>non</td>
+          <td>La taille maximale du corps de la requ&ecirc;te, ou 0 si aucune
+	  limite.</td>
         </tr>
         <tr>
 	<td><code>log_id</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>L'identifiant de la requ&ecirc;te dans les journaux d'acc&egrave;s ou
+	  d'erreur.</td>
         </tr>
         <tr>
           <td><code>method</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>La m&eacute;thode de la requ&ecirc;te, par exemple <code>GET</code>
ou
+	  <code>POST</code>.</td>
         </tr>
         <tr>
           <td><code>notes</code></td>
           <td>table</td>
           <td>oui</td>
+	  <td>Une liste de notes qui peuvent &ecirc;tre transmises d'un module
+	  &agrave; l'autre.</td>
+        </tr>
+        <tr>
+          <td><code>options</code></td>
+          <td>string</td>
+          <td>non</td>
+          <td>La valeur de la directive Options pour la requ&ecirc;te
+	  courante.</td>
         </tr>
         <tr>
           <td><code>path_info</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>La valeur de PATH_INFO extraite de la requ&ecirc;te.</td>
+        </tr>
+        <tr>
+          <td><code>port</code></td>
+          <td>number</td>
+          <td>non</td>
+          <td>Le port du serveur utilis&eacute; par la requ&ecirc;te.</td>
         </tr>
         <tr>
           <td><code>protocol</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>Le protocole utilis&eacute;, par exemple <code>HTTP/1.1</code></td>
         </tr>
         <tr>
           <td><code>proxyreq</code></td>
           <td>string</td>
           <td>oui</td>
+	  <td>Indique s'il s'agit d'une requ&ecirc;te mandat&eacute;e ou non. Cette
+	  valeur est en g&eacute;n&eacute;ral d&eacute;finie au cours de la phase
+	  post_read_request/translate_name du traitement de la requ&ecirc;te.</td>
         </tr>
         <tr>
 	  <td><code>range</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>Le contenu de l'en-t&ecirc;te <code>Range:</code>.</td>
+        </tr>
+        <tr>
+          <td><code>remaining</code></td>
+          <td>number</td>
+          <td>non</td>
+          <td>Le nombre d'octets du corps de la requ&ecirc;te restant &agrave;
lire.</td>
+        </tr>
+        <tr>
+          <td><code>server_built</code></td>
+          <td>string</td>
+          <td>non</td>
+          <td>La date de compilation du serveur.</td>
+        </tr>
+        <tr>
+          <td><code>server_name</code></td>
+          <td>string</td>
+          <td>non</td>
+          <td>Le nom du serveur pour cette requ&ecirc;te.</td>
+        </tr>
+        <tr>
+          <td><code>some_auth_required</code></td>
+          <td>boolean</td>
+          <td>non</td>
+          <td>Indique si une autorisation est/&eacute;tait requise pour cette
+	  requ&ecirc;te.</td>
         </tr>
         <tr>
           <td><code>subprocess_env</code></td>
           <td>table</td>
           <td>oui</td>
+	  <td>Le jeu de variables d'environnement pour cette requ&ecirc;te.</td>
+        </tr>
+        <tr>
+          <td><code>started</code></td>
+          <td>number</td>
+          <td>non</td>
+          <td>Le moment o&ugrave; le serveur a &eacute;t&eacute; (re)d&eacute;marr&eacute;,
en secondes
+	  depuis epoch (1er janvier 1970)</td>
         </tr>
         <tr>
 	  <td><code>status</code></td>
           <td>number</td>
           <td>oui</td>
+	  <td>Le code de retour (courant) pour cette requ&ecirc;te, par
+	  exemple <code>200</code> ou <code>404</code>.</td>
         </tr>
         <tr>
           <td><code>the_request</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>La cha&icirc;ne de la requ&ecirc;te telle qu'elle a &eacute;t&eacute;
envoy&eacute;e par le
+	  client, par exemple <code>GET /foo/bar HTTP/1.1</code>.</td>
         </tr>
         <tr>
           <td><code>unparsed_uri</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>La partie URI non interpr&eacute;t&eacute;e de la requ&ecirc;te</td>
         </tr>
         <tr>
           <td><code>uri</code></td>
           <td>string</td>
           <td>oui</td>
+	  <td>L'URI apr&egrave;s interpr&eacute;tation par httpd</td>
         </tr>
         <tr>
           <td><code>user</code></td>
           <td>string</td>
           <td>oui</td>
+	  <td>Si une authentification a &eacute;t&eacute; effectu&eacute;e, nom
de
+	  l'utilisateur authentifi&eacute;.</td>
         </tr>
 	<tr>
           <td><code>useragent_ip</code></td>
           <td>string</td>
           <td>non</td>
+	  <td>L'adresse IP de l'agent qui a envoy&eacute; la requ&ecirc;te</td>
         </tr>
         </table>
 
@@ -425,18 +666,29 @@ end
 	suivantes :</p>
 
         <highlight language="lua">
+	r:flush() -- vide le tampon de sortie
+        </highlight>
+
+        <highlight language="lua">
         r:addoutputfilter(name|function) -- ajoute un filtre en sortie
         </highlight>
 
         <highlight language="lua">
+	r:sendfile(filename) -- envoie un fichier entier au client en
+	utilisant sendfile s'il est support&eacute; par la plateforme
+        </highlight>
+
+        <highlight language="lua">
         r:parseargs() -- renvoie une table Lua contenant la cha&icirc;ne
 	d'arguments de la requ&ecirc;te
         </highlight>
 
 
         <highlight language="lua">
-        r:parsebody() -- interpr&egrave;te toutes donn&eacute;es POST de la requ&ecirc;te
et
-	les renvoie sous forme de table Lua
+        r:parsebody()([sizeLimit]) -- interpr&egrave;te le corps de la requ&ecirc;te
+	en tant que POST et renvoie une table lua. Un nombre optionnel
+	peut &ecirc;tre fourni pour sp&eacute;cifier le nombre maximal d'octets &agrave;
+	interpr&eacute;ter. La valeur par d&eacute;faut est 8192.
         </highlight>
 
 
@@ -448,6 +700,11 @@ end
         r:write("une simple cha&icirc;ne") -- affichage dans le
 	corps de la r&eacute;ponse
         </highlight>
+
+	<highlight language="lua">
+        r:escape_html("&lt;html&gt;test&lt;/html&gt;") -- Echappe le
+	code HTML et renvoie le r&eacute;sultat
+        </highlight>
         </dd>
     </dl>
 
@@ -489,6 +746,9 @@ contenu suivant :</p>
   <dd>Code d'&eacute;tat HTTP</dd>
   <dt>apache2.PROXYREQ_NONE, apache2.PROXYREQ_PROXY, apache2.PROXYREQ_REVERSE, apache2.PROXYREQ_RESPONSE</dt>
   <dd>Constantes internes utilis&eacute;es par <module>mod_proxy</module></dd>
+  <dt>apache2.AUTHZ_DENIED, apache2.AUTHZ_GRANTED, apache2.AUTHZ_NEUTRAL, apache2.AUTHZ_GENERAL_ERROR,
apache2.AUTHZ_DENIED_NO_USER</dt>
+  <dd>constantes internes utilis&eacute;es par <module>mod_authz_core</module></dd>
+
 </dl>
 <p>Les autres codes d'&eacute;tat HTTP ne sont pas encore impl&eacute;ment&eacute;s.</p>
 </section>
@@ -516,9 +776,9 @@ relatifs dans les directives de mod_lua<
 
 <directivesynopsis>
 <name>LuaScope</name>
-<description>Une valeur parmi once, request, conn, server -- la valeur
+<description>Une valeur parmi once, request, conn, thread -- la valeur
 par d&eacute;faut est once</description>
-<syntax>LuaScope once|request|conn|server [max|min max]</syntax>
+<syntax>LuaScope once|request|conn|thread|server [min] [max]</syntax>
 <default>LuaScope once</default>
 <contextlist><context>server config</context><context>virtual host</context>
 <context>directory</context><context>.htaccess</context>
@@ -539,13 +799,32 @@ par d&eacute;faut est once</description>
 
     <dt>conn:</dt> <dd>idem request, mais attach&eacute; &agrave;
connection_rec</dd>
 
+    <dt>thread:</dt> <dd>Utilise l'interpr&eacute;teur pendant toute
la dur&eacute;e
+    de vie du thread qui traite la requ&ecirc;te (disponible seulement avec
+    les MPMs thread&eacute;s).</dd>
+
     <dt>server:</dt>  <dd>Le comportement est ici diff&eacute;rent,
car la
     port&eacute;e du serveur pr&eacute;sente une dur&eacute;e de vie assez longue,
et
     plusieurs threads vont partager le m&ecirc;me server_rec. Pour g&eacute;rer tout
-    ceci, les interpr&eacute;teurs sont stock&eacute;s dans une liste de ressources
-    apr. Les arguments min et max ont &eacute;t&eacute; pr&eacute;vus pour sp&eacute;cifier
une
-    taille de jeu, mais sont inutilis&eacute;s pour le moment.</dd>
+    ceci, les &eacute;tats lua du serveur sont stock&eacute;s dans une liste de ressources
+    apr. Les arguments <code>min</code> et <code>max</code> permettent
+    de sp&eacute;cifier les nombres minimaux et maximaux d'&eacute;tats lua &agrave;
stocker
+    dans la liste.</dd>
    </dl>
+   <p>En g&eacute;n&eacute;ral, les port&eacute;es <code>thread</code>
et <code>server</code>
+   sont 2 &agrave; 3 fois plus rapides que les autres, car elles n'ont pas besoin
+   de r&eacute;g&eacute;n&eacute;rer de nouveaux &eacute;tats Lua &agrave;
chaque requ&ecirc;te (comme c'est le
+   cas avec le MPM event, o&ugrave; m&ecirc;me les connexions persistantes utilisent
un
+   nouveau thread pour chaque requ&ecirc;te). Si vous pensez que vos scripts
+   n'auront pas de probl&egrave;me s'il r&eacute;utilisent un &eacute;tat, alors
les port&eacute;es
+   <code>thread</code> ou <code>server</code> doivent &ecirc;tre
utilis&eacute;es car
+   elles pr&eacute;senteront de meilleures performances. Alors que la port&eacute;e
+   <code>thread</code> fournira les r&eacute;ponses les plus rapides, la
port&eacute;e
+   <code>server</code> utilisera moins de m&eacute;moire car les &eacute;tats
sont
+   rassembl&eacute;s dans des jeux, permettant par exemple &agrave; 1000 threads
de
+   partager 100 &eacute;tats Lua, ne n&eacute;cessitant ainsi que 10% de la m&eacute;moire
+   requise par la port&eacute;e <code>thread</code>.
+    </p>
 </usage>
 </directivesynopsis>
 
@@ -628,7 +907,8 @@ LuaPackagePath /scripts/lib/?/init.lua
 <description>Configure le cache de code compil&eacute;.</description>
 <syntax>LuaCodeCache stat|forever|never</syntax>
 <default>LuaCodeCache stat</default>
-<contextlist><context>server config</context><context>virtual host</context>
+<contextlist>
+<context>server config</context><context>virtual host</context>
 <context>directory</context><context>.htaccess</context>
 </contextlist>
 <override>All</override>
@@ -664,7 +944,6 @@ LuaCodeCache never
 traduction du traitement de la requ&ecirc;te</description>
 <syntax>LuaHookTranslateName  /chemin/vers/lua/script.lua  nom_fonction_hook [early|late]</syntax>
 <contextlist><context>server config</context><context>virtual host</context>
-<context>directory</context>
 </contextlist>
 <override>All</override>
 <compatibility>Le troisi&egrave;me argument optionnel est disponible depuis la
@@ -742,7 +1021,48 @@ traitement de la requ&ecirc;te</descript
 <context>directory</context><context>.htaccess</context>
 </contextlist>
 <override>All</override>
-    <usage><p>...</p></usage>
+    <usage>
+    <p>Identique &agrave; la directive
+    <directive>LuaHookTranslateName</directive>, mais s'ex&eacute;cute &agrave;
la
+    phase map-to-storage du traitement de la requ&ecirc;te. Les modules comme
+    mod_cache agissent pendant cette phase, ce qui permet de pr&eacute;senter
+    un exemple int&eacute;ressant de ce que l'on peut faire ici :</p>
+    <highlight language="config">
+    LuaHookMapToStorage /path/to/lua/script.lua check_cache
+    </highlight>
+    <highlight language="lua">
+require"apache2"
+cached_files = {}
+
+function read_file(filename) 
+    local input = io.open(filename, "r")
+    if input then
+        local data = input:read("*a")
+        cached_files[filename] = data
+        file = cached_files[filename]
+        input:close()
+    end
+    return cached_files[filename]
+end
+
+function check_cache(r)
+    if r.filename:match("%.png$") then -- Only match PNG files
+        local file = cached_files[r.filename] -- Check cache entries
+        if not file then
+            file = read_file(r.filename)  -- Read file into cache
+        end
+        if file then -- If file exists, write it out
+            r.status = 200
+            r:write(file)
+            r:info(("Sent %s to client from cache"):format(r.filename))
+            return apache2.DONE -- skip default handler for PNG files
+        end
+    end
+    return apache2.DECLINED -- If we had nothing to do, let others serve this.
+end
+    </highlight>
+
+    </usage>
 </directivesynopsis>
 
 <directivesynopsis>
@@ -893,12 +1213,22 @@ parentes sont fusionn&eacute;es dans les
 <name>LuaQuickHandler</name>
 <description>Fournit un point d'entr&eacute;e pour la gestion rapide du
 traitement de la requ&ecirc;te</description>
-<syntax></syntax>
+<syntax>LuaQuickHandler /path/to/script.lua hook_function_name</syntax>
 <contextlist><context>server config</context><context>virtual host</context>
 <context>directory</context><context>.htaccess</context>
 </contextlist>
 <override>All</override>
-<usage><p>...</p>
+<usage>
+    <p>Cette phase s'ex&eacute;cute juste apr&egrave;s l'attribution de la
requ&ecirc;te &agrave;
+    un serveur virtuel, et permet d'effectuer certains traitements avant
+    le d&eacute;roulement des autres phases, ou de servir une requ&ecirc;te sans
+    avoir &agrave; la traduire, l'associer &agrave; un espace de stockage, etc...
+    Comme cette phase s'ex&eacute;cute avant toute autre, les directives telles
+    que <directive type="section" module="core">Location</directive> ou
+    <directive type="section" module="core">Directory</directive> ne
+    sont pas encore prises en compte, car Les URI n'ont pas encore &eacute;t&eacute;
+    enti&egrave;rement interpr&eacute;t&eacute;s.
+    </p>
    <note><title>Contexte</title><p>Cette directive ne peut &ecirc;tre
    utilis&eacute;e ni &agrave; l'int&eacute;rieur d'une section <directive
type="section"
    module="core">Directory</directive> ou <directive type="section"
@@ -912,22 +1242,28 @@ traitement de la requ&ecirc;te</descript
 </description>
 <syntax>LuaAuthzProvider provider_name /path/to/lua/script.lua function_name</syntax>
 <contextlist><context>server config</context> </contextlist>
-<compatibility>Disponible depuis la version 2.5.0 du serveur HTTP Apache</compatibility>
+<compatibility>Disponible depuis la version 2.4.3 du serveur HTTP Apache</compatibility>
 
 <usage>
 <p>Lorsqu'une fonction lua a &eacute;t&eacute; enregistr&eacute;e en tant
que fournisseur
 d'autorisation, elle peut &ecirc;tre appel&eacute;e via la directive <directive
 module="mod_authz_core">Require</directive> :</p>
 
-<example>
+
 <highlight language="config">
 LuaRoot /usr/local/apache2/lua
 LuaAuthzProvider foo authz.lua authz_check_foo
 &lt;Location /&gt;
-  Require foo bar
+  Require foo johndoe
 &lt;/Location&gt;
 </highlight>
-</example>
+<highlight language="lua">
+require "apache2"
+function authz_check_foo(r, who)
+    if r.user ~= who then return apache2.AUTHZ_DENIED
+    return apache2.AUTHZ_GRANTED
+end
+</highlight>
 
 </usage>
 </directivesynopsis>



Mime
View raw message