mod_lua.html.fr revision b7a8fa8fd7c2a9e6fb9db382c3ad6334658f0fed
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<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<link href="/images/favicon.ico" rel="shortcut icon" /></head>
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<div class="up"><a href="./"><img title="<-" alt="<-" src="/images/left.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p><span>Langues Disponibles: </span><a href="/en/mod/mod_lua.html" hreflang="en" rel="alternate" title="English"> en </a> |
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<a href="/fr/mod/mod_lua.html" title="Fran�ais"> fr </a></p>
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
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<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<p>Vous trouverez davantage d'informations � propos du langage de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingprogrammation Lua sur <a href="http://www.lua.org/">le site web de
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 �
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 id="quickview"><h3 class="directives">Directives</h3>
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<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<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>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="basicconf" id="basicconf">Configuration de base</a></h2>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>La directive de base pour le chargement du module est</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<code>lua-script</code> qui peut �tre utilis� avec une directive
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingAddHandler lua-script .lua
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>Pour plus de d�tails, voir la directive
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
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<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-- exemple de gestionnaire
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire "string"
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.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction handle(r)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:puts("Hello Lua World!\n")
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 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 r:puts("Unsupported HTTP method " .. r.method)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingCe gestionnaire se contente d'afficher les arguments cod�s d'un uri ou
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingd'un formulaire dans un page au format texte.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingCela signifie que vous pouvez (et �tes encourag� �) avoir plusieurs
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinggestionnaires (ou points d'entr�e, ou filtres) dans le m�me script.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="writingauthzproviders" id="writingauthzproviders">Ecriture de fournisseurs d'autorisation</a></h2>
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<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<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>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire 'apache2'
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction authz_check_foo(r, ip, user)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding elseif r.user == nil then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding elseif r.user == user then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<p>La configuration suivante enregistre cette fonction en tant que
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfournisseur <code>foo</code>, et la configure por l'URL <code>/</code> :</p>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingLuaAuthzProvider foo authz_provider.lua authz_check_foo
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<Location />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Require foo 10.1.2.3 john_doe
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</Location>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="writinghooks" id="writinghooks">Ecriture de fonctions d'accroche
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 <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 <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 <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>
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><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 <td><code class="directive"><a href="#luahookauthchecker">LuaHookAuthChecker</a></code>
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><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 <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 <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 <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<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-- exemple d'accroche qui r��crit un URI en chemin du syst�me de
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire 'apache2'
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction translate_name(r)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding if r.uri == "/translate-name" then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding -- on ne g�re pas cette URL et on donne sa chance � un autre module
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.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Note: utilisez le drapeau early/late de la directive pour
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding l'ex�cuter avant ou apr�s mod_alias.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire 'apache2'
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction translate_name(r)
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding if r.uri == "/translate-name" then
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="datastructures" id="datastructures">Structures de donn�es</a></h2>
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 <td>L'option AllowOverride s'applique � la requ�te courante.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Ce champ contient le type d'authentification effectu�e
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La cha�ne de param�tres de la requ�te (par exemple
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 <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 <td>La banni�re du serveur, par exemple <code>Apache HTTP
93b653492fb3b4b65006e95a435629d806a9e589rbb <td>Le mot de passe pour l'authentification de base envoy�
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding avec la requ�te, s'il existe</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le type de codage du contenu de la requ�te courante</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 <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 <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 <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>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 <td>Les en-t�tes MIME de l'environnement de la r�ponse.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le nom d'h�te, tel que d�fini par l'en-t�te
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Indique si la requ�te � �t� faite via HTTPS</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Indique si la requ�te courante est la requ�te initiale ou
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding une sous-requ�te.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La taille maximale du corps de la requ�te, ou 0 si aucune
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding limite.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>L'identifiant de la requ�te dans les journaux d'acc�s ou
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding d'erreur.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La m�thode de la requ�te, par exemple <code>GET</code> ou
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Une liste de notes qui peuvent �tre transmises d'un module
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding � l'autre.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La valeur de la directive Options pour la requ�te
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding courante.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>La valeur de PATH_INFO extraite de la requ�te.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le port du serveur utilis� par la requ�te.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le protocole utilis�, par exemple <code>HTTP/1.1</code></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 <td>Le contenu de l'en-t�te <code>Range:</code>.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le nombre d'octets du corps de la requ�te restant � lire.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Indique si une autorisation est/�tait requise pour cette
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding requ�te.</td>
51af95bb51b5084e883bad250b2afa2838e9ceebfielding <td>Le jeu de variables d'environnement pour cette requ�te.</td>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding <td>Le moment o� le serveur a �t� (re)d�marr�, en secondes
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding depuis epoch (1er janvier 1970)</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>Le code de retour (courant) pour cette requ�te, par
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 <td>Si une authentification a �t� effectu�e, nom de
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf l'utilisateur authentifi�.</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <td>L'adresse IP de l'agent qui a envoy� la requ�te</td>
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf <p>La structure request_rec poss�de (au minimum) les m�thodes
3926b3b7716683a1241c1ff6f8dd2f9c5073665afanf suivantes :</p>
5e4791fd54c10fdd77ca81bee8ac8398f16d6d6astoddard r:flush() -- vide le tampon de sortie
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:addoutputfilter(name|function) -- ajoute un filtre en sortie
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb r:sendfile(filename) -- envoie un fichier entier au client en
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding utilisant sendfile s'il est support� par la plateforme
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:parseargs() -- renvoie une table Lua contenant la cha�ne
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding d'arguments de la requ�te
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 r:puts("bonjour", " le monde", "!") -- affichage dans le corps de la r�ponse
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:write("une simple cha�ne") -- affichage dans le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding corps de la r�ponse
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:escape_html("<html>test</html>") -- Echappe le
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding code HTML et renvoie le r�sultat
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<h2><a name="logging" id="logging">Fonctions de journalisation</a></h2>
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</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
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 <dd>Constante interne OK. Les gestionnaires renverront cette valeur
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding s'ils ont trait� la requ�te.</dd>
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 <dd>Cha�ne contenant la version du serveur HTTP Apache</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<p>Les autres codes d'�tat HTTP ne sont pas encore impl�ment�s.</p>
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<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<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<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>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingLuaAuthzProvider foo authz.lua authz_check_foo
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding<Location />
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Require foo johndoe
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding</Location>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire "apache2"
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingfunction authz_check_foo(r, who)
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<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 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 <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 <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">
51af95bb51b5084e883bad250b2afa2838e9ceebfieldingLuaCodeCache stat
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingLuaCodeCache forever
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingLuaCodeCache never
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<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase access_checker du
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
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<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<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase auth_checker du
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
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 :
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldingrequire 'apache2'
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 -- 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 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 elseif r.user == "foo" then
b4c8a80f7dbfc9b56dbe03bdc28f0b5eb5f23697rbb r:debug('user foo: OK')
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r:debug("authcheck: user='" .. r.user .. "'")
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
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<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>
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
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#Compatibility">Compatibilit�:</a></th><td>Le troisi�me argument optionnel est disponible depuis la
<div class="directive-section"><h2><a name="LuaHookFixups" id="LuaHookFixups">LuaHookFixups</a> <a name="luahookfixups" id="luahookfixups">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase de correction du
<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>
<div class="directive-section"><h2><a name="LuaHookInsertFilter" id="LuaHookInsertFilter">LuaHookInsertFilter</a> <a name="luahookinsertfilter" id="luahookinsertfilter">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase insert_filter du
<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>
<div class="directive-section"><h2><a name="LuaHookMapToStorage" id="LuaHookMapToStorage">LuaHookMapToStorage</a> <a name="luahookmaptostorage" id="luahookmaptostorage">Directive</a></h2>
<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
<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>
local input = io.open(filename, "r")
if r.filename:match("%.png$") then -- Only match PNG files
local file = cached_files[r.filename] -- Check cache entries
file = read_file(r.filename) -- Read file into cache
r.status = 200
r:info(("Sent %s to client from cache"):format(r.filename))
return apache2.DONE -- skip default handler for PNG files
return apache2.DECLINED -- If we had nothing to do, let others serve this.
<div class="directive-section"><h2><a name="LuaHookTranslateName" id="LuaHookTranslateName">LuaHookTranslateName</a> <a name="luahooktranslatename" id="luahooktranslatename">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e � la phase du nom de
<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#Compatibility">Compatibilit�:</a></th><td>Le troisi�me argument optionnel est disponible depuis la
ou une constante d�finie dans le module apache2 : apache2.OK,
d'entre eux renvoie apache2.OK. Si un hook n'effectuer pas la
traduction, il doit juste renvoyer apache2.DECLINED. Si le
if r.uri == "/" then
return apache2.OK
return apache2.DECLINED
utilis�e ni � l'int�rieur d'une section <code class="directive"><a href="/mod/core.html#directory"><Directory></a></code> ou <code class="directive"><a href="/mod/core.html#files"><Files></a></code>, ni dans un fichier htaccess.</p></div>
<div class="directive-section"><h2><a name="LuaHookTypeChecker" id="LuaHookTypeChecker">LuaHookTypeChecker</a> <a name="luahooktypechecker" id="luahooktypechecker">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la phase type_checker du
<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>
<div class="directive-section"><h2><a name="LuaInherit" id="LuaInherit">LuaInherit</a> <a name="luainherit" id="luainherit">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contr�le la mani�re dont les sections de configuration
<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#Compatibility">Compatibilit�:</a></th><td>Versions 2.4.0 et sup�rieures</td></tr>
<div class="directive-section"><h2><a name="LuaInputFilter" id="LuaInputFilter">LuaInputFilter</a> <a name="luainputfilter" id="luainputfilter">Directive</a></h2>
<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#Compatibility">Compatibilit�:</a></th><td>2.5.0 and later</td></tr>
<div class="directive-section"><h2><a name="LuaMapHandler" id="LuaMapHandler">LuaMapHandler</a> <a name="luamaphandler" id="luamaphandler">Directive</a></h2>
<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
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, r�pertoire, .htaccess</td></tr>
LuaMapHandler /(\w+)/(\w+) /scripts/$1.lua handle_$2
<div class="directive-section"><h2><a name="LuaOutputFilter" id="LuaOutputFilter">LuaOutputFilter</a> <a name="luaoutputfilter" id="luaoutputfilter">Directive</a></h2>
<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#Compatibility">Compatibilit�:</a></th><td>2.5.0 and later</td></tr>
<div class="directive-section"><h2><a name="LuaPackageCPath" id="LuaPackageCPath">LuaPackageCPath</a> <a name="luapackagecpath" id="luapackagecpath">Directive</a></h2>
<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>
<div class="directive-section"><h2><a name="LuaPackagePath" id="LuaPackagePath">LuaPackagePath</a> <a name="luapackagepath" id="luapackagepath">Directive</a></h2>
<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>
<div class="directive-section"><h2><a name="LuaQuickHandler" id="LuaQuickHandler">LuaQuickHandler</a> <a name="luaquickhandler" id="luaquickhandler">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entr�e pour la gestion rapide du
<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>
utilis�e ni � l'int�rieur d'une section <code class="directive"><a href="/mod/core.html#directory"><Directory></a></code> ou <code class="directive"><a href="/mod/core.html#files"><Files></a></code>, ni dans un fichier htaccess.</p></div>
<div class="directive-section"><h2><a name="LuaRoot" id="LuaRoot">LuaRoot</a> <a name="luaroot" id="luaroot">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sp�cifie le chemin de base pour la r�solution des chemins
<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>
<div class="directive-section"><h2><a name="LuaScope" id="LuaScope">LuaScope</a> <a name="luascope" id="luascope">Directive</a></h2>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Une valeur parmi once, request, conn, thread -- la valeur
<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>
<p><span>Langues Disponibles: </span><a href="/en/mod/mod_lua.html" hreflang="en" rel="alternate" title="English"> en </a> |
</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&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>
var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_lua.html';
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);
d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
<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[//><!--