Webserver CGI script – Ruby

cgi icon

Ruby logo

De uitleg op deze pagina beschrijft hoe je een extern programma zoals ruby kan gebruiken als compiler bij een webserver via de cgi-bin.

Wat heb je nodig?
1) Ruby (linux/windows)

Download & Installatie
Download het MSI (Win32 X86) bestand en installeer Ruby:

ruby installatie 01

ruby installatie 02

ruby installatie 03

Configuratie van Ruby voor Apache

Om Ruby 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\websiteindex.html
http://www.mijnwebsite.com/cgi-bin/hallo.rb, verwijst naar [ApacheFolder]\cgi-bin\hallo.rb

CGI scripts verwerken:
Zoek het volgende stuk op, en voeg de dik gedrukte tekst toe:

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”:

CGI Handler:
De bestandextensie van Ruby is: .RB

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) Haal het hekje “#” er voor weg, zodat de regel geactiveerd word.
2) Vul de regel aan met de extensie van Ruby: .rb

Sla het bestand op en herstart Apache, vanaf nu kun je Ruby scripts uitvoeren!


Testen van Ruby

Om ruby te testen maak je een bestand aan: [ApacheFolder]\cgi-bin\hallo.rb met de volgende inhoud (ruby script):

Als je nu via een internet browser naar je website cgi-bin folder gaat, bijvoorbeeld http://www.mijnwebsite.com/cgi-bin/hallo.rb, dan is dit het resultaat en ruby werkt dan goed:

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!