Standardmäßig muss das Lua-Skript die Funktion
»handle()
«
enthalten. Die Konfigurations-Direktive
»LuaMapHandler
«
kann das jedoch ändern. Fügt man der
»httpd.conf
«
etwa die Zeile:
LuaMapHandler /info /var/www/beispiel.luasaghallo
hinzu, würde Apache beim Abruf der URL
http://localhost/info
die Funktion
»saghallo
«
im Lua-Skript
»/var/www/beispiel.lua
«
starten.
Die Betonung liegt dabei auf "würde", denn diese Direktive ist ähnlich wie
»parsebody()
«
schlichtweg nicht implementiert – und das, obwohl bereits fertige Testskripte dafür existieren (unter
»/modules/lua/test
«
im Apache-Quellcode). Auch weitere interessante Direktiven glänzen durch ihre Abwesenheit, wie etwa
»LuaCodeCache
«
, mit der man eigentlich das Cacheverhalten für Lua-Skripte beeinflussen soll.
Selbst geschriebene Module können sich über so genannte Hooks in die verschiedenen Verarbeitungsphasen des Webservers einklinken und Veränderungen vornehmen.
»mod_lua
«
ermöglicht das auch einem Lua-Skript. Auf diese Weise kann man beispielsweise eine URL-Umleitung als Lua-Skript implementieren.
Listing 5
liefert beim Zugriff auf die URL
http://localhost/geheim
die HTML-Datei
»verboten.html
«
zurück.
Listing 5
URL-Umleitung über ein Lua-Skript
Die im
Listing 5
eingebundene Bibliothek
»apache2
«
bietet unter anderem die Konstanten aus
Tabelle 1
. Je nach Hook können auch andere Rückgabewerte sinnvoll sein, etwa ein HTTP-Statuscode. Damit Apache weiß, in welcher Lua-Datei es wann welche Funktion aufzurufen hat, müssen Sie in der
»httpd.conf
«
noch eine Zeile der Form:
LuaHookTranslateName /usr/local/apache2/skripte/umleitung.lua translate_name early
hinzufügen.
»LuaHookTranslateName
«
weist Apache an, die Lua-Funktion
»translate_name
«
möglichst früh bei der Interpretation der Anfrage-URL aufzurufen.
Den Funktionsnamen im Lua-Skript könnte man folglich auch anders benennen, wie in
Listing 5
bietet es sich jedoch an, ihn wie den entsprechenden Apache-Hook zu taufen. Die Zeile
»/usr/local/apache2/skripte/umleitung.lua
«
führt schließlich noch den kompletten Pfad zur Skript-Datei auf. Der optionale Parameter
»early
«
sorgt dafür, dass Apache die Funktion so früh wie möglich im Verarbeitungsprozess anwirft. Mit
»late
«
würde Apache die Funktion möglichst spät aktivieren.
Alle weiteren existierenden Hook-Direktiven listet die offizielle Dokumentation des Moduls am unteren Seitenende auf
[7]
. Es gibt jedoch auch hier wieder einige Direktiven, die noch gar nicht implementiert sind. Weitere Beispielskripte insbesondere zu den Hooks warten im Apache-Quellcodeverzeichnis unter
»modules/lua/test
«
.