Webserver CGI script – Autoit3
De uitleg op deze pagina beschrijft hoe je een extern programma zoals autoit3 kan gebruiken als compiler bij een webserver via de cgi-bin.
Wat heb je nodig?
1) Autoit3 (windows)
Download & Installatie
Download het MSI (Win32 X86) bestand en installeer AutoIt.
Configuratie van AutoIt voor Apache
Om Autoit te 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\website\index.html
http://www.mijnwebsite.com/cgi-bin/hallo.au3, verwijst naar [ApacheFolder]\cgi-bin\hallo.au3
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 AutoIt is: .AU3
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 AutoIt: .au3
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 .au3 |
Sla het bestand op en herstart Apache, vanaf nu kun je AutoIt scripts uitvoeren!
Testen van AutoIt
Om AutoIt te testen maak je een bestand aan: [ApacheFolder]\cgi-bin\hallo.au3 met de volgende inhoud (autoit script):
1 2 3 4 5 |
#![AutoItFolder]\autoit3.exe ConsoleWrite("Content-type: text/html" & @CRLF & @CRLF) ConsoleWrite("Hallo Wereld!<br>") ConsoleWrite("Mijn AutoIt3 script werkt!") |
Als je nu via een internet browser naar je website cgi-bin folder gaat, bijvoorbeeld http://www.mijnwebsite.com/cgi-bin/hallo.au3, dan is dit het resultaat en AutoIt werkt dan goed:
1 2 |
Hallo Wereld! Mijn AutoIt script werkt! |
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!