Webserver CGI script – Lua
De uitleg op deze pagina beschrijft hoe je een extern programma zoals Lua kan gebruiken als compiler bij een webserver via de cgi-bin.
Wat heb je nodig?
1) Lua (linux/windows)
Download & Installatie
Download het EXE bestand LuaforWindows en installeer Lua:
Configuratie van Lua voor Apache
Om Luiate gebruiken en de “cgi-bin” folder te activeren moet je het configuratiebestand voor apache openen [ApacheFolder]\conf\httpd.conf.
CGI script folder:
Kijk of de cgi-bin folder goed staat ingesteld, meestal is dit de cgi-bin folder in de Apache folder:
ScriptAlias /cgi-bin/ "[ApacheFolder]/cgi-bin/"
De regel zorgt er voor dat als scripts uit de cgi-bin folder aangeroepen worden via de browser naar de juiste locatie verwijzen, bijvoorbeeld:
http://www.mijnwebsite.com/website/index.html, verwijst naar C:\WWW\websiteindex.html
http://www.mijnwebsite.com/cgi-bin/hallo.lua, verwijst naar [ApacheFolder]\cgi-bin\hallo.lua
CGI scripts verwerken:
Zoek het volgende stuk op, en voeg de dik gedrukte tekst toe:
1 2 3 4 5 6 |
<Directory "[ApacheFolder]/cgi-bin"> Options +ExecCGI AllowOverride None Options None Require all granted </Directory> |
Hiermee geef je aan Apache aan dat er scripts uitgevoerd moeten worden in deze folder.
Optioneel: wil je ook CGI script uitvoeren in je webfolder (of andere delen van je webstructuur), voeg dan de dikgedrukte regel toe in de “directory” van je hoofdfolder (staat meestal onder “documentroot”)
CGI bestandextensies (optioneel):
Als je CGI scripts wil laten uitvoeren wanneer je een opgevraagd, kun je index.cgi toevoegen aan “DirectoryIndex”:
1 2 3 4 5 6 |
# DirectoryIndex: sets the file that Apache will serve if a directory # is requested. # <IfModule dir_module> DirectoryIndex index.html index.php index.cgi </IfModule> |
CGI Handler:
De bestandextensie van Lua is: .LUA
Ps: opzich maakt de bestand extensie voor Apache niet heel veel uit omdat het programma dat gestart moet worden IN het script staat, welke door Apache uitgelezen wordt!
Zoek het volgende op:
1 2 3 4 |
# To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # #AddHandler cgi-script .cgi |
1) Haal het hekje “#” er voor weg, zodat de regel geactiveerd word.
2) Vul de regel aan met de extensie van Lua: .lua
1 2 3 4 |
# To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # AddHandler cgi-script .cgi .lua |
Sla het bestand op en herstart Apache, vanaf nu kun je Lua scripts uitvoeren!
Testen van Lua
Om Lua te testen maak je een bestand aan: [ApacheFolder]\cgi-bin\hallo.lua met de volgende inhoud (lua script):
1 2 3 4 5 6 |
#!C:\[LuaFolder]\lua.exe io.write("Content-type: text/html\n\n") io.write("Hallo Wereld!<br>\n") io.write("Mijn Lua script werkt!<br><br>\n") io.write("Dit is ",_VERSION,"!\n") |
Als je nu via een internet browser naar je website cgi-bin folder gaat, bijvoorbeeld http://www.mijnwebsite.com/cgi-bin/hallo.lua, dan is dit het resultaat en Lua werkt dan goed:
1 2 3 4 |
Hallo Wereld! Mijn Lua script werkt! Dit is Lua vX.X! |
Werkt je script niet?, kijk dan in de Apache logs wat de foutmelding is en google deze!
Uitleg CGI scripts algemeen (belangrijk):
In de 1e regel moet je beginnen met een she-bang –> “!#” gevolgd door de locatie en het uitvoerbaar bestand van het externe programma, zodat Apache dit script kan uitvoeren met het juiste programma.
De 2e Regel is bedoeld voor commentaar bij het script (begin met #), geen commentaar, dan laat deze regel LEEG!
Vanaf de 3e regel mag je programmeren!