1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-06 09:01:14 +03:00

HTML build.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1595621 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Lucien Gentis
2014-05-18 14:16:59 +00:00
parent b4853bd836
commit 110e9bb118

View File

@@ -345,8 +345,7 @@ que vous pouvez
<pre class="prettyprint lang-lua">
<strong>translate_name.lua</strong><br />
-- exemple d'accroche qui r<><72>crit un URI en chemin du syst<73>me de
-- fichiers.
-- exemple d'accroche qui r<><72>crit un URI en chemin du syst<73>me de fichiers.
require 'apache2'
@@ -725,9 +724,8 @@ end</pre>
r:addoutputfilter("fooFilter") -- ins<6E>re le filtre fooFilter dans le flux de sortie</pre>
<pre class="prettyprint lang-lua">r:sendfile(filename) -- envoie un fichier entier au client en utilisant
-- sendfile s'il est support<72> par la
-- plateforme :
<pre class="prettyprint lang-lua">r:sendfile(filename) -- envoie un fichier entier au client en utilisant sendfile s'il est
-- support<72> par la plateforme :
if use_sendfile_thing then
r:sendfile("/var/www/large_file.img")
@@ -735,18 +733,22 @@ end</pre>
<pre class="prettyprint lang-lua">r:parseargs() -- renvoie deux tables : une table standard de couples
cl<EFBFBD>/valeur pour les donn<6E>es GET simples, et une autre pour les donn<6E>es
multivalu<EFBFBD>es (par exemple foo=1&amp;foo=2&amp;foo=3) :
-- cl<EFBFBD>/valeur pour les donn<6E>es GET simples,
-- et une autre pour les donn<6E>es
-- multivalu<6C>es (par exemple foo=1&amp;foo=2&amp;foo=3) :
local GET, GETMULTI = r:parseargs()
r:puts("Votre nom est : " .. GET['name'] or "Unknown")</pre>
<pre class="prettyprint lang-lua">r:parsebody()([sizeLimit]) -- interpr<70>te le corps de la requ<71>te
en tant que POST et renvoie deux tables lua, comme r:parseargs(). Un nombre optionnel
peut <20>tre fourni pour sp<73>cifier le nombre maximal d'octets <20>
interpr<EFBFBD>ter. La valeur par d<>faut est 8192.
<pre class="prettyprint lang-lua">r:parsebody()([sizeLimit]) -- interpr<70>te le corps de la
-- requ<71>te en tant que POST et renvoie
-- deux tables lua, comme r:parseargs(). Un
-- nombre optionnel peut <20>tre fourni
-- pour sp<73>cifier le nombre maximal
-- d'octets <20> interpr<70>ter. La
-- valeur par d<>faut est 8192.
local POST, POSTMULTI = r:parsebody(1024*1024)
r:puts("Votre nom est : " .. POST['name'] or "Unknown")</pre>
@@ -756,16 +758,13 @@ r:puts("Votre nom est : " .. POST['name'] or "Unknown")</pre>
<pre class="prettyprint lang-lua">r:puts("bonjour", " le monde", "!") -- affichage dans le corps de la r<>ponse</pre>
<pre class="prettyprint lang-lua">r:write("une simple cha<68>ne") -- affichage dans le
corps de la r<>ponse</pre>
<pre class="prettyprint lang-lua">r:write("une simple cha<68>ne") -- affichage dans le corps de la r<>ponse</pre>
<pre class="prettyprint lang-lua">r:escape_html("&lt;html&gt;test&lt;/html&gt;") -- Echappe le
code HTML et renvoie le r<>sultat</pre>
<pre class="prettyprint lang-lua">r:escape_html("&lt;html&gt;test&lt;/html&gt;") -- Echappe le code HTML et renvoie le r<>sultat</pre>
<pre class="prettyprint lang-lua">r:base64_encode(string) -- Encode une cha<68>ne <20> l'aide du
standard de codage Base64.
<pre class="prettyprint lang-lua">r:base64_encode(string) -- Encode une cha<68>ne <20> l'aide du standard de codage Base64.
local encoded = r:base64_encode("This is a test") -- returns VGhpcyBpcyBhIHRlc3Q=</pre>
@@ -775,14 +774,12 @@ local encoded = r:base64_encode("This is a test") -- returns VGhpcyBpcyBhIHRlc3Q
local decoded = r:base64_decode("VGhpcyBpcyBhIHRlc3Q=") -- returns 'This is a test'</pre>
<pre class="prettyprint lang-lua">r:md5(string) -- Calcule et renvoie le condens<6E> MD5 d'une cha<68>ne
en mode binaire (binary safe).
<pre class="prettyprint lang-lua">r:md5(string) -- Calcule et renvoie le condens<6E> MD5 d'une cha<68>ne en mode binaire (binary safe).
local hash = r:md5("This is a test") -- returns ce114e4501d2f4e2dcea3e17b546f339</pre>
<pre class="prettyprint lang-lua">r:sha1(string) -- Calcule et renvoie le condens<6E> SHA1 d'une cha<68>ne
en mode binaire (binary safe).
<pre class="prettyprint lang-lua">r:sha1(string) -- Calcule et renvoie le condens<6E> SHA1 d'une cha<68>ne en mode binaire (binary safe).
local hash = r:sha1("This is a test") -- returns a54d88e06612d820bc3be72877c74f257b561b19</pre>
@@ -804,8 +801,7 @@ local unescaped = r:unescape(url) -- renvoie 'http://foo.bar/1 2 3 &amp; 4 + 5'<
local url = r:construct_url(r.uri)</pre>
<pre class="prettyprint lang-lua">r.mpm_query(number) -- Interroge le serveur <20> propos de son
module MPM via la requ<71>te ap_mpm_query.
<pre class="prettyprint lang-lua">r.mpm_query(number) -- Interroge le serveur <20> propos de son module MPM via la requ<71>te ap_mpm_query.
local mpm = r.mpm_query(14)
if mpm == 1 then
@@ -821,50 +817,49 @@ end</pre>
<pre class="prettyprint lang-lua">r:scoreboard_process(a) -- Interroge le serveur <20> propos du
processus <20> la position <code>a</code>.
-- processus <20> la position <code>a</code>.
local process = r:scoreboard_process(1)
r:puts("Le serveur 1 a comme PID " .. process.pid)</pre>
<pre class="prettyprint lang-lua">r:scoreboard_worker(a, b) -- Interroge le serveur <20> propos du
thread <code>b</code>, dans le processus <code>a</code>.
-- thread <code>b</code>, dans le processus <code>a</code>.
local thread = r:scoreboard_worker(1, 1)
r:puts("L'ID du thread 1 du serveur 1 est " .. thread.tid .. " et son
<EFBFBD>tat est " .. thread.status)</pre>
<pre class="prettyprint lang-lua">r:clock() -- Renvoie l'heure courante avec une pr<70>cision d'une
microseconde.</pre>
<pre class="prettyprint lang-lua">r:clock() -- Renvoie l'heure courante avec une pr<70>cision d'une microseconde.</pre>
<pre class="prettyprint lang-lua">r:requestbody(filename) -- Lit et renvoie le corps d'une requ<71>te. Si
'filename' est sp<73>cifi<66>, le corps de requ<71>te n'est pas renvoy<6F>, mais
sauvegard<EFBFBD> dans le fichier correspondant.
<pre class="prettyprint lang-lua">r:requestbody(filename) -- Lit et renvoie le corps d'une requ<71>te.
-- Si 'filename' est sp<73>cifi<66>, le
-- corps de requ<71>te n'est pas
-- renvoy<6F>, mais sauvegard<72> dans
-- le fichier correspondant.
local input = r:requestbody()
r:puts("Vous m'avez envoy<6F> le corps de requ<71>te suivant :\n")
r:puts(input)</pre>
<pre class="prettyprint lang-lua">r:add_input_filter(filter_name) -- Ajoute le filtre en entr<74>e
'filter_name'.</pre>
<pre class="prettyprint lang-lua">r:add_input_filter(filter_name) -- Ajoute le filtre en entr<74>e 'filter_name'.</pre>
<pre class="prettyprint lang-lua">r:module_info(module_name) -- Interroge le serveur <20> propos d'un
module.
<pre class="prettyprint lang-lua">r:module_info(module_name) -- Interroge le serveur <20> propos d'un module.
local mod = r.module_info("mod_lua.c")
if mod then
for k, v in pairs(mod.commands) do
r:puts( ("%s: %s\n"):format(k,v)) -- affiche toutes les directives impl<70>ment<6E>es par ce module
r:puts( ("%s: %s\n"):format(k,v)) -- affiche toutes les directives
-- impl<70>ment<6E>es par ce module.
end
end</pre>
<pre class="prettyprint lang-lua">r:loaded_modules() -- Renvoie une liste des modules charg<72>s par
httpd.
<pre class="prettyprint lang-lua">r:loaded_modules() -- Renvoie une liste des modules charg<72>s par httpd.
for k, module in pairs(r:loaded_modules()) do
r:puts("J'ai charg<72> le module " .. module .. "\n")
@@ -872,38 +867,37 @@ end</pre>
<pre class="prettyprint lang-lua">r:runtime_dir_relative(filename) -- G<>n<EFBFBD>re le nom d'un fichier run-time
(par exemple la m<>moire partag<61>e "file") relativement au r<>pertoire de
run-time.</pre>
-- (par exemple la m<>moire partag<61>e
-- "file") relativement au r<>pertoire de run-time.</pre>
<pre class="prettyprint lang-lua">r:server_info() -- Renvoie une table contenant des informations
<EFBFBD> propos du serveur, comme le nom de l'ex<65>cutable httpd, le
module mpm utilis<69>, etc...</pre>
<pre class="prettyprint lang-lua">r:server_info() -- Renvoie une table contenant des informations <20>
-- propos du serveur, comme le nom de
-- l'ex<65>cutable httpd, le module mpm utilis<69>, etc...</pre>
<pre class="prettyprint lang-lua">r:set_document_root(file_path) -- D<>finit la racine des
documents pour la requ<71>te <20> file_path.</pre>
<pre class="prettyprint lang-lua">r:set_document_root(file_path) -- D<>finit la racine des documents
-- pour la requ<71>te <20> file_path.</pre>
<pre class="prettyprint lang-lua">r:add_version_component(component_string) -- Ajoute un <20>l<EFBFBD>ment <20>
la banni<6E>re du serveur.</pre>
-- la banni<6E>re du serveur.</pre>
<pre class="prettyprint lang-lua">r:set_context_info(prefix, docroot) -- D<>finit le pr<70>fixe et la
racine des documents du contexte pour une requ<71>te.</pre>
-- racine des documents du contexte pour une requ<71>te.</pre>
<pre class="prettyprint lang-lua">r:os_escape_path(file_path) -- Convertit un chemin du syst<73>me de
fichiers en URL ind<6E>pendamment du syst<73>me d'exploitation.</pre>
-- fichiers en URL ind<6E>pendamment du syst<73>me d'exploitation.</pre>
<pre class="prettyprint lang-lua">r:escape_logitem(string) -- Echappe une cha<68>ne pour
journalisation.</pre>
<pre class="prettyprint lang-lua">r:escape_logitem(string) -- Echappe une cha<68>ne pour journalisation.</pre>
<pre class="prettyprint lang-lua">r.strcmp_match(string, pattern) -- V<>rifie si 'string' correspond <20>
'pattern' via la fonction strcmp_match (GLOBs). Par exemple, est-ce que
'www.example.com' correspond <20> '*.example.com' ?
-- 'pattern' via la fonction strcmp_match (GLOBs). Par exemple, est-ce que
-- 'www.example.com' correspond <20> '*.example.com' ?
local match = r.strcmp_match("foobar.com", "foo*.com")
if match then
@@ -911,29 +905,26 @@ if match then
end</pre>
<pre class="prettyprint lang-lua">r:set_keepalive() -- D<>finit l'<27>tat de persistance d'une
requ<EFBFBD>te. Renvoie true dans la mesure du possible, false dans le
cas contraire.</pre>
<pre class="prettyprint lang-lua">r:set_keepalive() -- D<>finit l'<27>tat de persistance d'une requ<71>te.
-- Renvoie true dans la mesure du possible, false dans le cas contraire.</pre>
<pre class="prettyprint lang-lua">r:make_etag() -- G<>n<EFBFBD>re et renvoie le etag pour la requ<71>te
courante.</pre>
<pre class="prettyprint lang-lua">r:make_etag() -- G<>n<EFBFBD>re et renvoie le etag pour la requ<71>te courante.</pre>
<pre class="prettyprint lang-lua">r:send_interim_response(clear) -- Renvoie une r<>ponse d'int<6E>rim (1xx) au
client. Si 'clear' est vrai, les en-t<>tes disponibles seront envoy<6F>s et
effac<EFBFBD>s.</pre>
-- client. Si 'clear' est vrai, les en-t<>tes disponibles
-- seront envoy<6F>s et effac<EFBFBD>s.</pre>
<pre class="prettyprint lang-lua">r:custom_response(status_code, string) -- G<>n<EFBFBD>re et d<>finit une r<>ponse
personnalis<EFBFBD>e pour un code d'<27>tat particulier. Le fonctionnement est
tr<EFBFBD>s proche de celui de la directive ErrorDocument.
-- personnalis<EFBFBD>e pour un code d'<27>tat particulier.
-- Le fonctionnement est tr<EFBFBD>s proche de celui de la directive ErrorDocument.
r:custom_response(404, "Baleted!")</pre>
<pre class="prettyprint lang-lua">r.exists_config_define(string) -- V<>rifie si une d<>finition de
configuration existe.
<pre class="prettyprint lang-lua">r.exists_config_define(string) -- V<>rifie si une d<>finition de configuration existe.
if r.exists_config_define("FOO") then
r:puts("httpd a probablement <20>t<EFBFBD> lanc<6E> avec l'option -DFOO, ou FOO a
@@ -941,12 +932,11 @@ if r.exists_config_define("FOO") then
end</pre>
<pre class="prettyprint lang-lua">r:state_query(string) -- Interroge le serveur <20> propos de son
<EFBFBD>tat.</pre>
<pre class="prettyprint lang-lua">r:state_query(string) -- Interroge le serveur <20> propos de son <20>tat.</pre>
<pre class="prettyprint lang-lua">r:stat(filename [,wanted]) -- Ex<45>cute stat() sur un fichier, et renvoie
une table contenant des informations <20> propos de ce fichier.
<pre class="prettyprint lang-lua">r:stat(filename [,wanted]) -- Ex<45>cute stat() sur un fichier, et renvoie une table contenant
-- des informations <20> propos de ce fichier.
local info = r:stat("/var/www/foo.txt")
if info then
@@ -954,9 +944,8 @@ if info then
end</pre>
<pre class="prettyprint lang-lua">r:regex(string, pattern [,flags]) -- Ex<45>cute une recherche <20> base
d'expression rationnelle sur une cha<68>ne, et renvoie les
<EFBFBD>ventuelles correspondances trouv<75>es.
<pre class="prettyprint lang-lua">r:regex(string, pattern [,flags]) -- Ex<45>cute une recherche <20> base d'expression rationnelle
-- sur une cha<68>ne, et renvoie les <20>ventuelles correspondances trouv<75>es.
local matches = r:regex("foo bar baz", [[foo (\w+) (\S*)]])
if matches then
@@ -975,9 +964,9 @@ local matches = r:regex("FOO bar BAz", [[(foo) bar]], 1)
<pre class="prettyprint lang-lua">r.usleep(microsecondes) -- Interrompt l'ex<65>cution du script pendant le nombre de microsecondes sp<73>cifi<66>.</pre>
<pre class="prettyprint lang-lua">r:dbacquire(dbType[, dbParams]) -- Acquiert une connexion <20> une
base de donn<6E>es et renvoie une classe database. Voir '<a href="#databases">Connectivit<69> aux bases de donn<6E>es</a>' pour plus de
d<EFBFBD>tails.</pre>
<pre class="prettyprint lang-lua">r:dbacquire(dbType[, dbParams]) -- Acquiert une connexion <20> une base de donn<6E>es et renvoie une classe database.
-- Voir '<a href="#databases">Connectivit<69> aux bases de donn<6E>es</a>'
-- pour plus de d<EFBFBD>tails.</pre>
<pre class="prettyprint lang-lua">r:ivm_set("key", value) -- D<>fini une variable Inter-VM avec une valeur sp<73>cifique.
@@ -1014,13 +1003,15 @@ end</pre>
<pre class="prettyprint lang-lua">r:mkdir(dir [,mode]) -- Cr<43>e un r<>pertoire et d<>finit son mode via le param<61>tre optionnel mode.</pre>
<pre class="prettyprint lang-lua">r:mkrdir(dir [,mode]) -- Cr<43>e des r<>pertoires de mani<6E>re r<>cursive et d<>finit leur mode via le param<61>tre optionnel mode.</pre>
<pre class="prettyprint lang-lua">r:mkrdir(dir [,mode]) -- Cr<43>e des r<>pertoires de mani<6E>re r<>cursive et d<>finit
-- leur mode via le param<61>tre optionnel mode.</pre>
<pre class="prettyprint lang-lua">r:rmdir(dir) -- Supprime un r<>pertoire.</pre>
<pre class="prettyprint lang-lua">r:touch(file [,mtime]) -- D<>finit la date de modification d'un fichier <20> la date courante ou <20> la valeur optionnelle mtime en msec.</pre>
<pre class="prettyprint lang-lua">r:touch(file [,mtime]) -- D<>finit la date de modification d'un fichier <20> la date courante ou <20>
-- la valeur optionnelle mtime en msec.</pre>
<pre class="prettyprint lang-lua">r:get_direntries(dir) -- Renvoie une table contenant toutes les entr<74>es de r<>pertoires.
@@ -1574,7 +1565,7 @@ function logger(r)
f:close()
end
return apache2.DONE -- On dit <20> httpd de ne rien enregistrer
--dans le journal standard
--dans le journal standard
else
r.uri = r.uri:gsub("somesecretstuff", "") -- nettoie les donn<6E>es
return apache2.OK -- et httpd doit alors les enregistrer.
@@ -1616,19 +1607,19 @@ function read_file(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 r.filename:match("%.png$") then -- Ne concerne que les fichiers PNG
local file = cached_files[r.filename] -- V<EFBFBD>rifie les entr<EFBFBD>es du cache
if not file then
file = read_file(r.filename) -- Read file into cache
file = read_file(r.filename) -- Lit le fichier vers le cache
end
if file then -- If file exists, write it out
if file then -- Si le fichier existe, on l'envoie
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
r:info(("%s a <20>t<EFBFBD> envoy<6F> au client depuis le cache"):format(r.filename))
return apache2.DONE -- cout-circuite le gestionnaire par d<EFBFBD>faut des fichiers PNG
end
end
return apache2.DECLINED -- If we had nothing to do, let others serve this.
return apache2.DECLINED -- Si nous n'avons rien eu <20> faire, nous laissons les autres s'en charger
end</pre>
@@ -1754,11 +1745,11 @@ sont transmis au script Lua :
majuscules.
]]--
function input_filter(r)
print("luaInputFilter called") -- debug print
coroutine.yield() -- Yield and wait for buckets
while bucket do -- For each bucket, do...
print("luaInputFilter called") -- pour d<>bogage
coroutine.yield() -- attend des paquets de donn<6E>es
while bucket do -- Pour chaque paquet, faire ...
local output = string.upper(bucket) -- Convertit toutes les donn<6E>es POST en majuscules
coroutine.yield(output) -- Envoie les donn<6E>es trait<69>es <20> la cha<68>ne
coroutine.yield(output) -- Envoie les donn<6E>es trait<69>es <20> la cha<68>ne de filtrage
end
-- plus aucune donn<6E>e <20> traiter.
coroutine.yield("&amp;filterSignature=1234") -- Ajoute une signature <20> la fin
@@ -1773,7 +1764,7 @@ consid
return -- Emp<6D>che tout simplement le filtrage et transmet le contenu original
end
coroutine.yield() -- attend des paquets de donn<6E>es
... -- insert les filtres ici
... -- insert les filtres ici
end</pre>
<p>
@@ -1846,7 +1837,8 @@ sont transmis au script Lua :
sortie
]]--
function output_filter(r)
coroutine.yield("(Handled by myOutputFilter)&lt;br/&gt;\n") -- Ajoute des donn<6E>es au d<>but de la sortie, puis attend des paquets de donn<6E>es <20> traiter
coroutine.yield("(Handled by myOutputFilter)&lt;br/&gt;\n") -- Ajoute des donn<6E>es au d<>but de la sortie,
-- puis attend des paquets de donn<6E>es <20> traiter
while bucket do -- Pour chaque paquet, faire ...
local output = r:escape_html(bucket) -- Echappe les donn<6E>es en sortie
coroutine.yield(output) -- Envoie les donn<6E>es trait<69>es <20> la cha<68>ne
@@ -1863,7 +1855,7 @@ consid
return -- Emp<6D>che tout simplement le filtrage et transmet le contenu original
end
coroutine.yield() -- attend des paquets de donn<6E>es
... -- insert les filtres ici
... -- insert les filtres ici
end</pre>
<div class="note"><h3>Les filtres Lua avec <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></h3>
@@ -1960,8 +1952,7 @@ relatifs dans les directives de mod_lua</td></tr>
<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#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>