mod_lua.html.fr revision b7a8fa8fd7c2a9e6fb9db382c3ad6334658f0fed
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<?xml version="1.0" encoding="ISO-8859-1"?>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding This file is generated from xml source: DO NOT EDIT
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding -->
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<title>mod_lua - Serveur Apache HTTP</title>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<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" />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<script src="/style/scripts/prettify.js" type="text/javascript">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</script>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<link href="/images/favicon.ico" rel="shortcut icon" /></head>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<body>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div id="page-header">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<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>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p class="apache">Serveur Apache HTTP Version 2.5</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<img alt="" src="/images/feather.gif" /></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div id="path">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<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>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div id="page-content">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div id="preamble"><h1>Module Apache mod_lua</h1>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="toplang">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p><span>Langues Disponibles: </span><a href="/en/mod/mod_lua.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<a href="/fr/mod/mod_lua.html" title="Fran�ais">&nbsp;fr&nbsp;</a></p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="outofdate">Cette traduction peut �tre p�rim�e. V�rifiez la version
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding anglaise pour les changements r�cents.</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Fournit des points d'entr�e Lua dans diff�rentes parties du
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingtraitement des requ�tes httpd</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur�de�Module:</a></th><td>lua_module</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="module-dict.html#SourceFile">Fichier�Source:</a></th><td>mod_lua.c</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="module-dict.html#Compatibility">Compatibilit�:</a></th><td>versions 2.3 et sup�rieures</td></tr></table>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h3>Sommaire</h3>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Ce module permet d'ajouter au serveur des extensions sous forme de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingscripts �crits dans le langage de programmation Lua.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<code class="module"><a href="/mod/mod_lua.html">mod_lua</a></code> fournit de nombreuses extensions
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding(hooks) disponibles avec les modules natifs du serveur HTTP Apache,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingcomme les associations de requ�tes � des fichiers, la g�n�ration de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingr�ponses dynamiques, le contr�le d'acc�s, l'authentification et
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingl'autorisation.</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Vous trouverez davantage d'informations � propos du langage de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingprogrammation Lua sur <a href="http://www.lua.org/">le site web de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingLua</a>.</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="note"><code>mod_lua</code> est encore au stade exp�rimental. Son mode
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingd'utilisation et son comportement pourront changer � tout moment jusqu'�
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingce qu'il passe au stade stable, et ce m�me entre deux versions stables
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding2.4.x. N'oublez pas de consulter le fichier CHANGES avant toute mise �
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingjour.</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="warning"><h3>Avertissement</h3>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Ce module poss�de une grande capacit� d'action sur le fonctrionnement
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingde httpd, ce qui lui conf�re une grande puissance, mais peut aussi
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinginduire un risque de s�curit�. Il est d�conseill� d'utiliser ce module
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingsur un serveur partag� avec des utilisateurs auxquels vous ne pouvez pas
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingaccorder une confiance absolue, car il peut permettre de modifier le
2d71630471d1c23f0137309e3c3957c633ecbfd6rbbfonctionnement interne de httpd.</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div id="quickview"><h3 class="directives">Directives</h3>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<ul id="toc">
51af95bb51b5084e883bad250b2afa2838e9ceebfielding<li><img alt="" src="/images/down.gif" /> <a href="#luaauthzprovider">LuaAuthzProvider</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luacodecache">LuaCodeCache</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luahookaccesschecker">LuaHookAccessChecker</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luahookauthchecker">LuaHookAuthChecker</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luahookcheckuserid">LuaHookCheckUserID</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luahookfixups">LuaHookFixups</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luahookinsertfilter">LuaHookInsertFilter</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luahookmaptostorage">LuaHookMapToStorage</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luahooktranslatename">LuaHookTranslateName</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luahooktypechecker">LuaHookTypeChecker</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luainherit">LuaInherit</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luainputfilter">LuaInputFilter</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luamaphandler">LuaMapHandler</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luaoutputfilter">LuaOutputFilter</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luapackagecpath">LuaPackageCPath</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luapackagepath">LuaPackagePath</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luaquickhandler">LuaQuickHandler</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luaroot">LuaRoot</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#luascope">LuaScope</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</ul>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h3>Sujets</h3>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<ul id="topics">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#basicconf">Configuration de base</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#writinghandlers">Ecrire des gestionnaires</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#writingauthzproviders">Ecriture de fournisseurs d'autorisation</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#writinghooks">Ecriture de fonctions d'accroche
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding(hooks)</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#datastructures">Structures de donn�es</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#logging">Fonctions de journalisation</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<li><img alt="" src="/images/down.gif" /> <a href="#apache2">Paquet apache2</a></li>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb<div class="section">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="basicconf" id="basicconf">Configuration de base</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>La directive de base pour le chargement du module est</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-config">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding LoadModule lua_module modules/mod_lua.so
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<code>mod_lua</code> fournit un gestionnaire nomm�
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<code>lua-script</code> qui peut �tre utilis� avec une directive
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<code>AddHandler</code> :</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-config">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingAddHandler lua-script .lua
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingCeci aura pour effet de faire traiter les requ�tes pour les fichiers
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingdont l'extension est <code>.lua</code> par <code>mod_lua</code> en
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinginvoquant cette fonction de <code>gestion</code> de fichier.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Pour plus de d�tails, voir la directive
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<code class="directive">LuaMapHandler</code>.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="section">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="writinghandlers" id="writinghandlers">Ecrire des gestionnaires</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Dans l'API du serveur HTTP Apache, un gestionnaire est une sorte de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingpoint d'accroche (hook) sp�cifique responsable de la g�n�ration de la
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingr�ponse. <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code>, <code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code> et
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<code class="module"><a href="/mod/mod_status.html">mod_status</a></code> sont des exemples de modules comportant un
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinggestionnaire.</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p><code>mod_lua</code> cherche toujours � invoquer une fonction Lua pour le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinggestionnaire, plut�t que de simplement �valuer le corps d'un script dans
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingle style de CGI. Une fonction de gestionnaire se pr�sente comme suit :</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<strong>example.lua</strong><br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding-- exemple de gestionnaire
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire "string"
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding--[[
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb Il s'agit du nom de m�thode par d�faut pour les gestionnaires Lua ;
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding voir les noms de fonctions optionnels dans la directive
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding LuaMapHandler pour choisir un point d'entr�e diff�rent.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding--]]
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction handle(r)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r.content_type = "text/plain"
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:puts("Hello Lua World!\n")
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding if r.method == 'GET' then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding for k, v in pairs( r:parseargs() ) do
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:puts( string.format("%s: %s\n", k, v) )
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding end
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding elseif r.method == 'POST' then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding for k, v in pairs( r:parsebody() ) do
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:puts( string.format("%s: %s\n", k, v) )
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding end
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb else
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:puts("Unsupported HTTP method " .. r.method)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding end
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingend
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingCe gestionnaire se contente d'afficher les arguments cod�s d'un uri ou
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingd'un formulaire dans un page au format texte.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingCela signifie que vous pouvez (et �tes encourag� �) avoir plusieurs
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinggestionnaires (ou points d'entr�e, ou filtres) dans le m�me script.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="section">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="writingauthzproviders" id="writingauthzproviders">Ecriture de fournisseurs d'autorisation</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p><code class="module"><a href="/mod/mod_authz_core.html">mod_authz_core</a></code> fournit une interface d'autorisation
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingde haut niveau bien plus facile � utiliser que dans les hooks
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingcorrespondants. Le premier argument de la directive <code class="directive"><a href="/mod/mod_authz_core.html#require">Require</a></code> permet de sp�cifier le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfournisseur d'autorisation � utiliser. Pour chaque directive <code class="directive"><a href="/mod/mod_authz_core.html#require">Require</a></code>,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<code class="module"><a href="/mod/mod_authz_core.html">mod_authz_core</a></code> appellera le fournisseur d'autorisation
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingsp�cifi�, le reste de la ligne constituant les param�tres. Le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfournisseur consid�r� va alors v�rifier les autorisations et fournir le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingr�sultat dans une valeur de retour.</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>En g�n�ral, le fournisseur authz est appel� avant l'authentification.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingS'il doit conna�tre le nom d'utilisateur authentifi� (ou si
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingl'utilisateur est appel� � �tre authentifi�), le fournisseur doit
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrenvoyer <code>apache2.AUTHZ_DENIED_NO_USER</code>, ce qui va
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingd�clancher le processus d'authentification et un deuxi�me appel du
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfournisseur authz.</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>La fonction du fournisseur authz ci-dessous accepte deux arguments,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingune adresse IP et un nom d'utilisateur. Elle autorise l'acc�s dans le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingcas o� la requ�te provient de l'adresse IP sp�cifi�e, ou si
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingl'utilisateur authentifi� correspond au second argument :</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<strong>authz_provider.lua</strong><br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire 'apache2'
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction authz_check_foo(r, ip, user)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding if r.useragent_ip == ip then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return apache2.AUTHZ_GRANTED
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding elseif r.user == nil then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return apache2.AUTHZ_DENIED_NO_USER
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding elseif r.user == user then
0942697a9b5de44865676345a3828741c827efe6rbb return apache2.AUTHZ_GRANTED
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding else
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return apache2.AUTHZ_DENIED
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding end
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingend
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>La configuration suivante enregistre cette fonction en tant que
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfournisseur <code>foo</code>, et la configure por l'URL <code>/</code> :</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-config">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingLuaAuthzProvider foo authz_provider.lua authz_check_foo
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding&lt;Location /&gt;
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Require foo 10.1.2.3 john_doe
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding&lt;/Location&gt;
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="section">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="writinghooks" id="writinghooks">Ecriture de fonctions d'accroche
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding(hooks)</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb<p>Les fonctions d'accroche d�terminent la mani�re dont les modules (et
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingles scripts Lua) participent au traitement des requ�tes. Chaque type
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingd'accroche propos� par le serveur a un r�le sp�cifique, comme
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingl'association de requ�tes au syst�me de fichiers, le contr�le d'acc�s,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingou la d�finition de types MIME : </p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<table class="bordered"><tr class="header">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <th>Phase d'accroche</th>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <th>Directive mod_lua</th>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <th>Description</th>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Gestionnaire rapide</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code class="directive"><a href="#luaquickhandler">LuaQuickHandler</a></code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Il s'agit de la premi�re accroche appel�e lorsqu'une requ�te
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding a �t� associ�e � un serveur ou un serveur virtuel.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Phase de traduction</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code class="directive"><a href="#luahooktranslatename">LuaHookTranslateName</a></code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Cette phase traduit l'URI de la requ�te en nom de fichier
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding sur le syst�me. Ce sont des modules comme
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <code class="module"><a href="/mod/mod_alias.html">mod_alias</a></code> et <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code> qui
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding interviennent au cours de cette phase.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Choix du lieu de stockage de la ressource</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code class="directive"><a href="#luahookmaptostorage">LuaHookMapToStorage</a></code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Cette phase d�finit le lieu de stockage de la ressource :
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding physique, en cache ou externe/mandat�. Elle est assur�e par les
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding modules de mandat ou de mise en cache.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Autorisation d'acc�s</td>
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb <td><code class="directive"><a href="#luahookaccesschecker">LuaHookAccessChecker</a></code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Cette phase v�rifie si un client a l'autorisation d'acc�s �
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding la ressource. Elle s'ex�cute avant l'authentification de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding l'utisateur ; il faut donc �tre prudent.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>V�rification de l'identifiant utilisateur</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code class="directive"><a href="#luahookcheckuserid">LuaHookCheckUserID</a></code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Cette phase v�rifie l'identifiant de l'utilisateur ayant
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding fait l'objet d'une n�gociation.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>V�rification de l'autorisation d'acc�s</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code class="directive"><a href="#luahookauthchecker">LuaHookAuthChecker</a></code>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding ou
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <code class="directive"><a href="#luaauthzprovider">LuaAuthzProvider</a></code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Cette phase v�rifie l'autorisation d'acc�s d'un utilisateur
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding en fonction des ses param�tres de connexion, comme
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding l'identifiant, le certificat, etc...
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>V�rification du type de la ressource</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code class="directive"><a href="#luahooktypechecker">LuaHookTypeChecker</a></code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Cette phase assigne un type de contenu et un gestionnaire �
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding la ressource.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Derniers r�glages</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code class="directive"><a href="#luahookfixups">LuaHookFixups</a></code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>C'est la derni�re phase avant l'activation des gestionnaires
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding de contenu. Toute modification de derni�re minute � la requ�te
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding doit �tre effectu�e ici.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Gestionnaire de contenu</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>fichiers fx. <code>.lua</code> ou directive <code class="directive"><a href="#luamaphandler">LuaMapHandler</a></code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>C'est durant cette phase que le contenu est trait�. Les
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding fichiers sont lus, interpr�t�s, certains sont ex�cut�s, et le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r�sultat obtenu est envoy� au client.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Journalisation</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>aucune</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Lorsqu'une requ�te a �t� trait�e, plusieurs phases de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding journalisation interviennent, et enregistrent leurs r�sultats
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding dans les fichiers d'erreur ou d'acc�s.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</table>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Les fonctions d'accroche re�oivent l'objet de la requ�te comme seul
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingargument (sauf LuaAuthzProvider qui re�oit aussi des arguments en
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingprovenance de la directive Require). Elles peuvent renvoyer une valeur,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingselon la fonction, mais il s'agit en g�n�ral d'un
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingcode d'�tat HTTP ou des valeurs OK, DONE, ou DECLINED,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingque vous pouvez �crire dans lua sous la forme <code>apache2.OK</code>,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<code>apache2.DONE</code>, ou <code>apache2.DECLINED</code>.</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<strong>translate_name.lua</strong><br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding-- exemple d'accroche qui r��crit un URI en chemin du syst�me de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfichiers.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire 'apache2'
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction translate_name(r)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding if r.uri == "/translate-name" then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r.filename = r.document_root .. "/find_me.txt"
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return apache2.OK
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb end
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding -- on ne g�re pas cette URL et on donne sa chance � un autre module
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return apache2.DECLINED
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingend
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<strong>translate_name2.lua</strong><br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding--[[ exemple d'accroche qui r��crit un URI vers un autre URI. Il renvoie
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding un apache2.DECLINED pour permettre � un autre interpr�teur d'URL de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding travailler sur la substitution, y compris l'accroche translate_name
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding de base dont les tables de correspondances se basent sur DocumentRoot.
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Note: utilisez le drapeau early/late de la directive pour
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding l'ex�cuter avant ou apr�s mod_alias.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding--]]
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire 'apache2'
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction translate_name(r)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding if r.uri == "/translate-name" then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r.uri = "/find_me.txt"
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return apache2.DECLINED
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding end
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return apache2.DECLINED
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingend
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="section">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="datastructures" id="datastructures">Structures de donn�es</a></h2>
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<dl>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<dt>request_rec</dt>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dd>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <p>request_rec est consid�r�e en tant que donn�e utilisateur.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Elle poss�de une m�tatable qui vous permet d'accomplir des
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding choses int�ressantes. Pour la plus grande partie, elle poss�de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding les m�mes champs que la structure request_rec, la
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding plupart d'entre eux �tant accessibles en lecture et �criture (le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding contenu des champs de la table peut �tre modifi�, mais les
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding champs eux-m�mes ne peuvent pas �tre �tablis en tant que tables
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding distinctes).</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <table class="bordered"><tr class="header">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <th><strong>Nom</strong></th>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <th><strong>Type Lua</strong></th>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <th><strong>Modifiable</strong></th>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <th><strong>Description</strong></th>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>allowoverrides</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>L'option AllowOverride s'applique � la requ�te courante.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>ap_auth_type</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Ce champ contient le type d'authentification effectu�e
93b653492fb3b4b65006e95a435629d806a9e589rbb (par exemple <code>basic</code>)</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>args</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>oui</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La cha�ne de param�tres de la requ�te (par exemple
93b653492fb3b4b65006e95a435629d806a9e589rbb <code>foo=bar&amp;name=johnsmith</code>)</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>assbackwards</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>boolean</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>contient true s'il s'agit d'une requ�te de style HTTP/0.9
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding (par exemple <code>GET /foo</code> (sans champs d'en-t�te) )</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>auth_name</code></td>
93b653492fb3b4b65006e95a435629d806a9e589rbb <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La cha�ne d'identification utilis�e pour la v�rification
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding de l'autorisation d'acc�s (si elle est disponible).</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
93b653492fb3b4b65006e95a435629d806a9e589rbb<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>banner</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La banni�re du serveur, par exemple <code>Apache HTTP
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Server/2.4.3 openssl/0.9.8c</code></td>
93b653492fb3b4b65006e95a435629d806a9e589rbb </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>basic_auth_pw</code></td>
93b653492fb3b4b65006e95a435629d806a9e589rbb <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
93b653492fb3b4b65006e95a435629d806a9e589rbb <td>Le mot de passe pour l'authentification de base envoy�
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding avec la requ�te, s'il existe</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>canonical_filename</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le nom de fichier canonique de la requ�te</td>
93b653492fb3b4b65006e95a435629d806a9e589rbb </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>content_encoding</code></td>
93b653492fb3b4b65006e95a435629d806a9e589rbb <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le type de codage du contenu de la requ�te courante</td>
93b653492fb3b4b65006e95a435629d806a9e589rbb </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
93b653492fb3b4b65006e95a435629d806a9e589rbb <td><code>content_type</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>oui</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le type de contenu de la requ�te courante, tel qu'il a �t�
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding d�termin� au cours de la phase type_check (par exemple
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <code>image/gif</code> ou <code>text/html</code>)</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb <td><code>context_prefix</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>context_document_root</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>document_root</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La racine des documents du serveur</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>err_headers_out</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>table</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>L'en-t�te MIME de l'environnement pour la r�ponse, �crit
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding m�me en cas d'erreur et conserv� pendant les redirections
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb internes</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>filename</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>oui</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le nom de fichier correspondant � la requ�te, par exemple
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding /www/example.com/foo.txt. Il peut �tre modifi� au cours des
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding phases translate-name ou map-to-storage du traitement de la
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding requ�te pour permettre au gestionnaire par d�faut (ou aux
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding gestionnaires de script) de servir une version du fichier
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding autre que celle demand�e.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>handler</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb <td>oui</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le nom du <a href="/handler.html">gestionnaire</a> qui
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding doit traiter la requ�te, par exemple <code>lua-script</code>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding si elle doit �tre trait�e par mod_lua. Cette valeur est en
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding g�n�ral d�finie via les directives <code class="directive"><a href="/mod/mod_mime.html#addhandler">AddHandler</a></code> ou <code class="directive"><a href="/mod/core.html#sethandler">SetHandler</a></code>, mais peut aussi l'�tre
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding via mod_lua pour permettre � un autre gestionnaire de traiter
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding une requ�te sp�cifique qui ne serait pas trait�e par d�faut
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding par ce dernier.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>headers_in</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>table</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>oui</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Les en-t�tes MIME de l'environnement de la requ�te. Il
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding s'agit des en-t�tes comme <code>Host, User-Agent,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Referer</code>, etc...</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>headers_out</code></td>
0942697a9b5de44865676345a3828741c827efe6rbb <td>table</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>oui</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Les en-t�tes MIME de l'environnement de la r�ponse.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>hostname</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le nom d'h�te, tel que d�fini par l'en-t�te
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <code>Host:</code> ou par un URI complet.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>is_https</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>boolean</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Indique si la requ�te � �t� faite via HTTPS</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>is_initial_req</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>boolean</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Indique si la requ�te courante est la requ�te initiale ou
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding une sous-requ�te.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
0942697a9b5de44865676345a3828741c827efe6rbb<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>limit_req_body</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>number</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La taille maximale du corps de la requ�te, ou 0 si aucune
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding limite.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>log_id</code></td>
0942697a9b5de44865676345a3828741c827efe6rbb <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>L'identifiant de la requ�te dans les journaux d'acc�s ou
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding d'erreur.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>method</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La m�thode de la requ�te, par exemple <code>GET</code> ou
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <code>POST</code>.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>notes</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>table</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>oui</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Une liste de notes qui peuvent �tre transmises d'un module
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding � l'autre.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>options</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La valeur de la directive Options pour la requ�te
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding courante.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>path_info</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La valeur de PATH_INFO extraite de la requ�te.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>port</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>number</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le port du serveur utilis� par la requ�te.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>protocol</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le protocole utilis�, par exemple <code>HTTP/1.1</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
0942697a9b5de44865676345a3828741c827efe6rbb <td><code>proxyreq</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>oui</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Indique s'il s'agit d'une requ�te mandat�e ou non. Cette
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding valeur est en g�n�ral d�finie au cours de la phase
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding post_read_request/translate_name du traitement de la requ�te.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>range</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le contenu de l'en-t�te <code>Range:</code>.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>remaining</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>number</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le nombre d'octets du corps de la requ�te restant � lire.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>server_built</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
0942697a9b5de44865676345a3828741c827efe6rbb <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La date de compilation du serveur.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>server_name</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>string</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le nom du serveur pour cette requ�te.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>some_auth_required</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>boolean</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Indique si une autorisation est/�tait requise pour cette
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding requ�te.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>subprocess_env</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>table</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>oui</td>
51af95bb51b5084e883bad250b2afa2838e9ceebfielding <td>Le jeu de variables d'environnement pour cette requ�te.</td>
93b653492fb3b4b65006e95a435629d806a9e589rbb </tr>
1be548ab863a87b6d82638bf41f8d323f3aa2c3arbb<tr>
93b653492fb3b4b65006e95a435629d806a9e589rbb <td><code>started</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>number</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>non</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le moment o� le serveur a �t� (re)d�marr�, en secondes
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding depuis epoch (1er janvier 1970)</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr class="odd">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td><code>status</code></td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>number</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>oui</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>Le code de retour (courant) pour cette requ�te, par
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding exemple <code>200</code> ou <code>404</code>.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td><code>the_request</code></td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>string</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>non</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>La cha�ne de la requ�te telle qu'elle a �t� envoy�e par le
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf client, par exemple <code>GET /foo/bar HTTP/1.1</code>.</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf </tr>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf<tr class="odd">
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td><code>unparsed_uri</code></td>
6afe4c4dc334ef3e5001a1739e2336962f8d07febjh <td>string</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>non</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>La partie URI non interpr�t�e de la requ�te</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf </tr>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf<tr>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td><code>uri</code></td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>string</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>oui</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>L'URI apr�s interpr�tation par httpd</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf </tr>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf<tr class="odd">
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td><code>user</code></td>
6afe4c4dc334ef3e5001a1739e2336962f8d07febjh <td>string</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>oui</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>Si une authentification a �t� effectu�e, nom de
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf l'utilisateur authentifi�.</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf </tr>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf<tr>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td><code>useragent_ip</code></td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>string</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>non</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>L'adresse IP de l'agent qui a envoy� la requ�te</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</table>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <p>La structure request_rec poss�de (au minimum) les m�thodes
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf suivantes :</p>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <pre class="prettyprint lang-lua">
5e4791fd54c10fdd77ca81bee8ac8398f16d6d6astoddard r:flush() -- vide le tampon de sortie
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf </pre>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:addoutputfilter(name|function) -- ajoute un filtre en sortie
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <pre class="prettyprint lang-lua">
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb r:sendfile(filename) -- envoie un fichier entier au client en
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding utilisant sendfile s'il est support� par la plateforme
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:parseargs() -- renvoie une table Lua contenant la cha�ne
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding d'arguments de la requ�te
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:parsebody()([sizeLimit]) -- interpr�te le corps de la requ�te
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding en tant que POST et renvoie une table lua. Un nombre optionnel
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding peut �tre fourni pour sp�cifier le nombre maximal d'octets �
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding interpr�ter. La valeur par d�faut est 8192.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:puts("bonjour", " le monde", "!") -- affichage dans le corps de la r�ponse
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:write("une simple cha�ne") -- affichage dans le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding corps de la r�ponse
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:escape_html("&lt;html&gt;test&lt;/html&gt;") -- Echappe le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding code HTML et renvoie le r�sultat
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </dd>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </dl>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="section">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="logging" id="logging">Fonctions de journalisation</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding -- exemples de messages de journalisation
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:trace1("Ceci est un message de journalisation de niveau
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding trace") -- les niveaux valides vont de trace1 � trace8 <br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:debug("Ceci est un message de journalisation de niveau debug")<br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:info("Ceci est un message de journalisation de niveau info")<br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:notice("Ceci est un message de journalisation de niveau notice")<br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:warn("Ceci est un message de journalisation de niveau warn")<br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:err("Ceci est un message de journalisation de niveau err")<br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:alert("Ceci est un message de journalisation de niveau alert")<br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:crit("Ceci est un message de journalisation de niveau crit")<br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:emerg("Ceci est un message de journalisation de niveau emerg")<br />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="section">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="apache2" id="apache2">Paquet apache2</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Le paquet nomm� <code>apache2</code> est fourni avec (au minimum) le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingcontenu suivant :</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<dl>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dt>apache2.OK</dt>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dd>Constante interne OK. Les gestionnaires renverront cette valeur
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding s'ils ont trait� la requ�te.</dd>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dt>apache2.DECLINED</dt>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dd>Constante interne DECLINED. Les gestionnaires renverront cette
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding valeur s'ils n'ont pas l'intention de traiter la requ�te.</dd>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dt>apache2.DONE</dt>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dd>Constante interne DONE.</dd>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dt>apache2.version</dt>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dd>Cha�ne contenant la version du serveur HTTP Apache</dd>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dt>apache2.HTTP_MOVED_TEMPORARILY</dt>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dd>Code d'�tat HTTP</dd>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dt>apache2.PROXYREQ_NONE, apache2.PROXYREQ_PROXY, apache2.PROXYREQ_REVERSE, apache2.PROXYREQ_RESPONSE</dt>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dd>Constantes internes utilis�es par <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code></dd>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dt>apache2.AUTHZ_DENIED, apache2.AUTHZ_GRANTED, apache2.AUTHZ_NEUTRAL, apache2.AUTHZ_GENERAL_ERROR, apache2.AUTHZ_DENIED_NO_USER</dt>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <dd>constantes internes utilis�es par <code class="module"><a href="/mod/mod_authz_core.html">mod_authz_core</a></code></dd>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</dl>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Les autres codes d'�tat HTTP ne sont pas encore impl�ment�s.</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="directive-section"><h2><a name="LuaAuthzProvider" id="LuaAuthzProvider">LuaAuthzProvider</a> <a name="luaauthzprovider" id="luaauthzprovider">Directive</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<table class="directive">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Branche une fonction fournisseur d'autorisation dans <code class="module"><a href="/mod/mod_authz_core.html">mod_authz_core</a></code>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaAuthzProvider provider_name /path/to/lua/script.lua function_name</code></td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Disponible depuis la version 2.4.3 du serveur HTTP Apache</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</table>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Lorsqu'une fonction lua a �t� enregistr�e en tant que fournisseur
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingd'autorisation, elle peut �tre appel�e via la directive <code class="directive"><a href="/mod/mod_authz_core.html#require">Require</a></code> :</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-config">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingLuaRoot /usr/local/apache2/lua
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingLuaAuthzProvider foo authz.lua authz_check_foo
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding&lt;Location /&gt;
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Require foo johndoe
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding&lt;/Location&gt;
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire "apache2"
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction authz_check_foo(r, who)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding if r.user ~= who then return apache2.AUTHZ_DENIED
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return apache2.AUTHZ_GRANTED
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingend
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="directive-section"><h2><a name="LuaCodeCache" id="LuaCodeCache">LuaCodeCache</a> <a name="luacodecache" id="luacodecache">Directive</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<table class="directive">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure le cache de code compil�.</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaCodeCache stat|forever|never</code></td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>LuaCodeCache stat</code></td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</table><p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Cette directive permet de d�finir le comportement du cache de code
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding en m�moire. La valeur par d�faut est stat ; dans ce cas, le script
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding du niveau le plus haut (et pas les scripts inclus) est v�rifi� �
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding chaque fois que ce fichier est n�cessaire, et est recharg� si la
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding date de modification est plus r�cente que celle du script d�j�
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding charg�. Les autres valeurs permettent respectivement de garder le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding fichier en cache perp�tuellement (forever - jamais v�rifi� ni
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding remplac�), ou de ne jamais le mettre en cache (never).</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <p>En g�n�ral, les valeurs stat et forever sont utilis�es pour un
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding serveur en production, et les valeurs stat ou never pour un serveur
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding en d�veloppement.</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">
51af95bb51b5084e883bad250b2afa2838e9ceebfieldingLuaCodeCache stat
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingLuaCodeCache forever
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingLuaCodeCache never
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding </pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
061c3874622b67beff724876b9bd1b1f291f2eaafielding<div class="directive-section"><h2><a name="LuaHookAccessChecker" id="LuaHookAccessChecker">LuaHookAccessChecker</a> <a name="luahookaccesschecker" id="luahookaccesschecker">Directive</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<table class="directive">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase access_checker du
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingtraitement de la requ�te</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookAccessChecker /chemin/vers/lua/script.lua hook_function_name [early|late]</code></td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Le troisi�me argument optionnel est disponible depuis la
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingversion 2.3.15 du serveur HTTP Apache.</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</table>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Ajoute votre fonction d'accroche � la phase access_checker. Une
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfonction d'accroche access checker renvoie en g�n�ral OK, DECLINED, ou
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingHTTP_FORBIDDEN.</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding "early" ou "late" permettent de contr�ler le moment auquel ce script
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding s'ex�cute par rapport aux autres modules.</p></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="directive-section"><h2><a name="LuaHookAuthChecker" id="LuaHookAuthChecker">LuaHookAuthChecker</a> <a name="luahookauthchecker" id="luahookauthchecker">Directive</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<table class="directive">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase auth_checker du
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingtraitement de la requ�te</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookAuthChecker /chemin/vers/lua/script.lua hook_function_name [early|late]</code></td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
51af95bb51b5084e883bad250b2afa2838e9ceebfielding<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Le troisi�me argument optionnel est disponible depuis la
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingversion 2.3.15 du serveur HTTP Apache.</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</table>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>Invoque une fonction lua au cours de la phase auth_checker du
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingtraitement de la requ�te. Cette directive peut s'utiliser pour
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingimpl�menter une v�rification arbitraire de l'authentification et de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingl'autorisation. Voici un exemple tr�s simple :
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<pre class="prettyprint lang-lua">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire 'apache2'
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding-- fonction d'accroche authcheck fictive
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf-- Si la requ�te ne contient aucune donn�e d'authentification, l'en-t�te
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf-- de la r�ponse est d�fini et un code 401 est renvoy� afin de demander au
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding-- navigateur d'effectuer une authentification basique. Si la requ�te
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding-- comporte des donn�es d'authentification, elles ne sont pas vraiment
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding-- consult�es, mais on admet la prise en compte de l'utilisateur 'foo' et
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding-- on la valide. On v�rifie ensuite si l'utilisateur est bien 'foo' et on
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding-- accepte la requ�te.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction authcheck_hook(r)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding -- recherche des informations d'authentification
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding auth = r.headers_in['Authorization']
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding if auth ~= nil then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding -- d�finition d'un utilisateur par d�faut
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r.user = 'foo'
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding end
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding if r.user == nil then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:debug("authcheck: user is nil, returning 401")
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return 401
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding elseif r.user == "foo" then
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb r:debug('user foo: OK')
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding else
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:debug("authcheck: user='" .. r.user .. "'")
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return 401
51af95bb51b5084e883bad250b2afa2838e9ceebfielding end
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding return apache2.OK
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingend
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</pre>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding "early" ou "late" permettent de contr�ler le moment auquel ce script
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding s'ex�cute par rapport aux autres modules.</p></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<div class="directive-section"><h2><a name="LuaHookCheckUserID" id="LuaHookCheckUserID">LuaHookCheckUserID</a> <a name="luahookcheckuserid" id="luahookcheckuserid">Directive</a></h2>
51af95bb51b5084e883bad250b2afa2838e9ceebfielding<table class="directive">
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase check_user_id du
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingtraitement de la requ�te</td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookCheckUserID /chemin/vers/lua/script.lua hook_function_name [early|late]</code></td></tr>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Le troisi�me argument optionnel est disponible depuis la
version 2.3.15 du serveur HTTP Apache.</td></tr>
</table><p>...</p>
<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
"early" ou "late" permettent de contr�ler le moment auquel ce script
s'ex�cute par rapport aux autres modules.</p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="LuaHookFixups" id="LuaHookFixups">LuaHookFixups</a> <a name="luahookfixups" id="luahookfixups">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase de correction du
traitement de la requ�te</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookFixups /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
</table>
<p>
Idem LuaHookTranslateName, mais s'ex�cute durant la phase de
correction.
</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="LuaHookInsertFilter" id="LuaHookInsertFilter">LuaHookInsertFilter</a> <a name="luahookinsertfilter" id="luahookinsertfilter">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase insert_filter du
traitement de la requ�te</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookInsertFilter /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
</table><p>Non encore impl�ment�</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="LuaHookMapToStorage" id="LuaHookMapToStorage">LuaHookMapToStorage</a> <a name="luahookmaptostorage" id="luahookmaptostorage">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase map_to_storage du
traitement de la requ�te</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookMapToStorage /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
</table>
<p>Identique � la directive
<code class="directive">LuaHookTranslateName</code>, mais s'ex�cute � la
phase map-to-storage du traitement de la requ�te. Les modules comme
mod_cache agissent pendant cette phase, ce qui permet de pr�senter
un exemple int�ressant de ce que l'on peut faire ici :</p>
<pre class="prettyprint lang-config">
LuaHookMapToStorage /path/to/lua/script.lua check_cache
</pre>
<pre class="prettyprint lang-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
</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="LuaHookTranslateName" id="LuaHookTranslateName">LuaHookTranslateName</a> <a name="luahooktranslatename" id="luahooktranslatename">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e � la phase du nom de
traduction du traitement de la requ�te</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookTranslateName /chemin/vers/lua/script.lua nom_fonction_hook [early|late]</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#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Le troisi�me argument optionnel est disponible depuis la
version 2.3.15 du serveur HTTP Apache.</td></tr>
</table><p>
Cette directive permet d'ajouter un point d'entr�e (�
APR_HOOK_MIDDLE) � la phase du nom de traduction du traitement de la
requ�te. La fonction hook accepte un seul argument, le request_rec,
et doit renvoyer un code d'�tat qui est soit un code d'erreur HTTP,
ou une constante d�finie dans le module apache2 : apache2.OK,
apache2.DECLINED, ou apache2.DONE.</p>
<p>Pour ceux qui ne sont pas familiers avec les points d'entr�e
(hook), en gros, chaque hook sera invoqu� jusqu'� ce que l'un
d'entre eux renvoie apache2.OK. Si un hook n'effectuer pas la
traduction, il doit juste renvoyer apache2.DECLINED. Si le
traitement de la requ�te doit �tre interrompu, la valeur renvoy�e
doit �tre apache2.DONE.</p>
<p>Exemple :</p>
<pre class="prettyprint lang-config">
# httpd.conf
LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper
</pre>
<pre class="prettyprint lang-lua">
-- /scripts/conf/hooks.lua --
require "apache2"
function silly_mapper(r)
if r.uri == "/" then
r.filename = "/var/www/home.lua"
return apache2.OK
else
return apache2.DECLINED
end
end
</pre>
<div class="note"><h3>Contexte</h3><p>Cette directive ne peut �tre
utilis�e ni � l'int�rieur d'une section <code class="directive"><a href="/mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="/mod/core.html#files">&lt;Files&gt;</a></code>, ni dans un fichier htaccess.</p></div>
<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
"early" ou "late" permettent de contr�ler le moment auquel ce script
s'ex�cute par rapport aux autres modules.</p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="LuaHookTypeChecker" id="LuaHookTypeChecker">LuaHookTypeChecker</a> <a name="luahooktypechecker" id="luahooktypechecker">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase type_checker du
traitement de la requ�te</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookTypeChecker /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
</table><p>...</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="LuaInherit" id="LuaInherit">LuaInherit</a> <a name="luainherit" id="luainherit">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contr�le la mani�re dont les sections de configuration
parentes sont fusionn�es dans les enfants</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaInherit none|parent-first|parent-last</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>LuaInherit parent-first</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>Versions 2.4.0 et sup�rieures</td></tr>
</table><p>Par d�faut, si des directives LuaHook* se trouvent dans
des sections de configuration Directory ou Location qui se
chevauchent, les scripts
d�finis dans les sections les plus sp�cifiques s'ex�cutent
<em>apr�s</em> ceux d�finis dans les sections plus g�n�riques
(LuaInherit parent-first). Vous pouvez inverser cet ordre, ou faire
en sorte que le contexte parent ne s'applique pas du tout.</p>
<p>Jusqu'aux versions 2.3.x, le comportement par d�faut consistait �
ignorer les directives LuaHook* situ�es dans les sections de
configuration parentes.</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="LuaInputFilter" id="LuaInputFilter">LuaInputFilter</a> <a name="luainputfilter" id="luainputfilter">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a Lua function for content input filtering</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaInputFilter filter_name /path/to/lua/script.lua function_name</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>2.5.0 and later</td></tr>
</table><p>La documentation de cette directive
n'a pas encore t traduite. Veuillez vous reporter la version
en langue anglaise.</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="LuaMapHandler" id="LuaMapHandler">LuaMapHandler</a> <a name="luamaphandler" id="luamaphandler">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance un chemin avec un gestionnaire lua</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaMapHandler modele-uri /chemin/vers/lua/script.lua
[nom-fonction]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
</table>
<p>Cette directive permet de faire correspondre un mod�le d'uri avec
une fonction de gestionnaire situ�e dans un fichier sp�cifique. Elle
utilise les expressions rationnelles PCRE pour mettre en
correspondance l'uri, et supporte les groupes de correspondance
d'interpolation dans le chemin du fichier et le nom de la fonction.
Prenez garde aux probl�mes de s�curit� en �crivant vos expressions
rationnelles.</p>
<div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">
LuaMapHandler /(\w+)/(\w+) /scripts/$1.lua handle_$2
</pre>
</div>
<p>Cette directive va faire correspondre des uri comme
/photos/show?id=9 au fichier /scripts/photos.lua, et invoquera la
fonction de gestionnaire handle_show au niveau de la vm lua
apr�s chargement de ce fichier.</p>
<pre class="prettyprint lang-config">
LuaMapHandler /bingo /scripts/wombat.lua
</pre>
<p>Cette directive invoquera la fonction "handle" qui est la
valeur par d�faut si aucun nom de fonction sp�cifique n'est
sp�cifi�.</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="LuaOutputFilter" id="LuaOutputFilter">LuaOutputFilter</a> <a name="luaoutputfilter" id="luaoutputfilter">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a Lua function for content output filtering</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaOutputFilter filter_name /path/to/lua/script.lua function_name</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit�:</a></th><td>2.5.0 and later</td></tr>
</table><p>La documentation de cette directive
n'a pas encore t traduite. Veuillez vous reporter la version
en langue anglaise.</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="LuaPackageCPath" id="LuaPackageCPath">LuaPackageCPath</a> <a name="luapackagecpath" id="luapackagecpath">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un r�pertoire au package.cpath de lua</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaPackageCPath /chemin/vers/include/?.soa</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
</table>
<p>Cette directive permet d'ajouter un chemin � la liste des chemins
de recherche des biblioth�ques partag�es de lua. Ceci modifie le
package.cpath dans les vms lua.</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="LuaPackagePath" id="LuaPackagePath">LuaPackagePath</a> <a name="luapackagepath" id="luapackagepath">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un r�pertoire au package.path de lua</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaPackagePath /chemin/vers/include/?.lua</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
</table><p>Cette directive permet d'ajouter un chemin � la liste des
chemins de recherche du module lua. Elle suit les m�mes conventions
que lua. Ceci modifie le package.path dans les vms lua.</p>
<div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">
LuaPackagePath /scripts/lib/?.lua
LuaPackagePath /scripts/lib/?/init.lua
</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="LuaQuickHandler" id="LuaQuickHandler">LuaQuickHandler</a> <a name="luaquickhandler" id="luaquickhandler">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la gestion rapide du
traitement de la requ�te</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaQuickHandler /path/to/script.lua hook_function_name</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
</table>
<p>Cette phase s'ex�cute juste apr�s l'attribution de la requ�te �
un serveur virtuel, et permet d'effectuer certains traitements avant
le d�roulement des autres phases, ou de servir une requ�te sans
avoir � la traduire, l'associer � un espace de stockage, etc...
Comme cette phase s'ex�cute avant toute autre, les directives telles
que <code class="directive"><a href="/mod/core.html#location">&lt;Location&gt;</a></code> ou
<code class="directive"><a href="/mod/core.html#directory">&lt;Directory&gt;</a></code> ne
sont pas encore prises en compte, car Les URI n'ont pas encore �t�
enti�rement interpr�t�s.
</p>
<div class="note"><h3>Contexte</h3><p>Cette directive ne peut �tre
utilis�e ni � l'int�rieur d'une section <code class="directive"><a href="/mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="/mod/core.html#files">&lt;Files&gt;</a></code>, ni dans un fichier htaccess.</p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="LuaRoot" id="LuaRoot">LuaRoot</a> <a name="luaroot" id="luaroot">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sp�cifie le chemin de base pour la r�solution des chemins
relatifs dans les directives de mod_lua</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaRoot /chemin/vers/un/r�pertoire</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
</table>
<p>Cette directive permet de sp�cifier le chemin de base qui sera
utilis� pour �valuer tous les chemins relatifs dans mod_lua. En
l'absence de cette directive, les chemins relatifs sont r�solus par
rapport au r�pertoire de travail courant, ce qui ne sera pas
toujours appropri� pour un serveur.</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="LuaScope" id="LuaScope">LuaScope</a> <a name="luascope" id="luascope">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Une valeur parmi once, request, conn, thread -- la valeur
par d�faut est once</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaScope once|request|conn|thread|server [min] [max]</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D�faut:</a></th><td><code>LuaScope once</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Exp�rimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
</table>
<p>Cette directive permet de sp�cifier la dur�e de vie de
l'interpr�teur Lua qui sera utilis� dans ce "r�pertoire". La valeur
par d�faut est "once".</p>
<dl>
<dt>once:</dt> <dd>utilise l'interpr�teur une fois.</dd>
<dt>request:</dt> <dd>utilise l'interpr�teur pour traiter tout ce
qui est bas� sur le m�me fichier dans la requ�te, et qui se trouve
aussi dans la port�e de la requ�te.</dd>
<dt>conn:</dt> <dd>idem request, mais attach� � connection_rec</dd>
<dt>thread:</dt> <dd>Utilise l'interpr�teur pendant toute la dur�e
de vie du thread qui traite la requ�te (disponible seulement avec
les MPMs thread�s).</dd>
<dt>server:</dt> <dd>Le comportement est ici diff�rent, car la
port�e du serveur pr�sente une dur�e de vie assez longue, et
plusieurs threads vont partager le m�me server_rec. Pour g�rer tout
ceci, les �tats lua du serveur sont stock�s dans une liste de ressources
apr. Les arguments <code>min</code> et <code>max</code> permettent
de sp�cifier les nombres minimaux et maximaux d'�tats lua � stocker
dans la liste.</dd>
</dl>
<p>En g�n�ral, les port�es <code>thread</code> et <code>server</code>
sont 2 � 3 fois plus rapides que les autres, car elles n'ont pas besoin
de r�g�n�rer de nouveaux �tats Lua � chaque requ�te (comme c'est le
cas avec le MPM event, o� m�me les connexions persistantes utilisent un
nouveau thread pour chaque requ�te). Si vous pensez que vos scripts
n'auront pas de probl�me s'il r�utilisent un �tat, alors les port�es
<code>thread</code> ou <code>server</code> doivent �tre utilis�es car
elles pr�senteront de meilleures performances. Alors que la port�e
<code>thread</code> fournira les r�ponses les plus rapides, la port�e
<code>server</code> utilisera moins de m�moire car les �tats sont
rassembl�s dans des jeux, permettant par exemple � 1000 threads de
partager 100 �tats Lua, ne n�cessitant ainsi que 10% de la m�moire
requise par la port�e <code>thread</code>.
</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="/en/mod/mod_lua.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="/fr/mod/mod_lua.html" title="Fran�ais">&nbsp;fr&nbsp;</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&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>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_lua.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 2012 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>