Wenn man selbst Web-Seiten anbieten und nicht nur konsumieren will, braucht man für den eigenen Amiga einen Web-Server. Wer jetzt gleich glaubt, daß die Installation eines solchen Programms schwierig sei, der irrt gewaltig. In zehn Minuten ist das erledigt. Es ist sogar recht einfach, AWS mit einem intelligenten Skript so aufzubohren, daß er tadelos Perl-Skripte ausführt -- und auch Amiga-OS-Shell-Skripte. Interessiert?
Bevor die Installation starten kann, braucht man AWS selbst, sowie ein paar Konfigurationsdateien. AWS finden Sie unter der Web-Adresse ftp://ftp.phone.net/pub/amiga/aws/. Was Sie brauchen, ist die recht alte 0.97-Version. Lassen Sie die Finger von neuen Versionen im Verzeichnis »beta«. Diese funktionieren nicht, wie man es erwartet und können nicht so einfach, wie in diesem Artikel beschrieben, erweitert werden.
Leider gibt es das Programm und andere nötige Dateien nur einzelnen. Wir haben daher die wichtigsten Sachen gesammelt und als LHA-Archiv auf die Web-Seiten des AMIGA-Magazins gepackt. Nach dem Download müssen Sie das Archiv nur noch auspacken. Dabei entsteht ein neues Verzeichnis »AWS«. Geben Sie danach noch die Zeile
Assign AWS: aws
in einer Shell ein. Außerdem müssen Sie eine entsprechende Zeile (mit allen nötigen Pfadangaben) in die S:User-Startup einfügen.
Danach gilt es noch die Datei »aws« aus dem Verzeichnis »AWS:conf« den eigenen Wünschen anzupassen. Die Anpassung ist nicht Pflicht -- AWS funktioniert auch dann, wenn Sie keine Zeile ändern. Zwei Zeilen sollten Sie aber dennoch editieren:
Außerdem sollten Sie in der letzten Zeile hinter »map / directory« das Verzeichnis angeben, in dem alle HTML-Seiten zu finden sind. Es stellt die Wurzel des HTML-Seitenbaums dar. Im Beispiel steht dort nur »aws:html«. Es reicht aus, um den Web-Server zu starten und die folgende Beispiele nachzuvollziehen.
Erster Versuch
Vor dem ersten Start von AWS muß natürlich ein TCP/IP-Paket gestartet sein. Mit »AmiTCP« und »Miami« gibt es keinerlei Schwierigkeiten. Starten Sie die TCP/IP-Software und tippen Sie in einer Shell ein:
run AWS:AWS
Später sollten Sie zwischen »run« und »AWS:AWS« noch ein »>NIL:« einfügen. Beim ersten Start dagegen ist es wichtig, eventuelle Fehlermeldungen zu sehen. Daher fehlt das »>NIL:«. Wenn Sie keinerlei Meldungen erhalten (außerdem der Nummer des neu gestarteten Prozesses) ist alles glatt gelaufen und der Web-Server läuft. Bedenken Sie, daß sich AWS nicht als Server-Prozeß unter Kontrolle der TCP/IP-Software starten läßt. Sie müssen das Programm nach Start von TCP/IP mit »run« in Gang setzen.
Starten Sie anschließend einen Web-Browser -- es ist egal welchen -- und geben Sie als URL ein:

Wenn Sie nur eine Fehlermeldung sehen, müssen Sie
mit Hilfe von »SnoopDOS« oder einem vergleichbaren
Programm untersuchen, auf welche Dateien AWS
zugreift. SnoopDOS zeigt nach seinem Start eine
ständig wachsende Liste an, die alle
Dateizugriffe des Amiga-Systems und deren Erfolg oder
Mißerfolg festhält. Meist sieht man anhand den
nicht erfolgreichen Zugriffen sehr
schnell, was nicht funktioniert.
Alles paletti: Wenn Sie diese Seite sehen (unter
der angebenen URL), dann läuft der Web-Server
einwandfrei
Skript-Probleme
Da AWS kein ausgefeilter Web-Server mit vielerlei Schnickschnack ist, beherrscht er nur grundlegende zusätzliche Funktionen. Skripte aus dem Verzeichnis »cgi-bin« (oder aus einem anderen von Ihnen angegebenen Verzeichnis) müssen entweder kompilierte Programme oder ARexx-Skripte sein -- mehr geht nicht.
Ein paar einfache Skripte liefert der Autor von AWS mit. Was bald schmerzlich fehlt, ist die Möglichkeit, auch Perl-Skripte starten zu können. »Perl« ist die Web-Server-Skriptsprache überhaupt, die vor allem auf UNIX-Rechnern bevorzugt eingesetzt wird. Sie ist zwar unter Gesichtspunkten der Informatik chaotisch, dafür aber (oder etwa deswegen?) enorm praktisch. In vielen Büchern und Web-Seiten findet man Perl-Skripte für alltägliche Probleme.
Die Lösung
:Als Ersatz für die fehlende Einbindung gibt es in dem Paket auf den AMIGA-Seiten ein Skript, daß das Problem elegant löst: Es ist ein kompiliertes Programm, das beliebige Skriptsprachen starten kann und dazu den Namen der Sprachinterpreters aus der ersten Zeile der Skriptdatei extrahiert. Fehlt die Angabe, nimmt es an, daß ein Perl-Skript vorliegt.
Wie der Aufruf zu erfolgen hat, können Sie dem Quelltext der HTML-Seite perltest.html entnehmen. Hinter »/cgi-bin/skriptgate/« ist der Name des Skripts anzugeben. Das Skript muß ebenfalls in »/cgi-bin« liegen (oder Sie setzen ein anderes Verzeichnis in der ENV-Variable »AWS_SKRIPTDIR«).
Als Beispiel für ein PerlSkript sehen Sie rechts test.pl. Es sollte nach »cgi-bin« kopiert werden, damit es funktioniert. Es gibt zuerst alle nötigen Infos aus, damit der Web-Browser das folgende als HTML betrachtet, gibt einen kurzen Hinweis aus und testet dann, über welche Methode die Parameter übergeben werden (»GET« oder »POST«). Dananch werden die Parameter geholt und einfach ausgegeben. Danach folgt das Ende der HTML-Seite.
In der ersten Zeile des Skripts steht, wo der Perl-Interpreter zu finden ist. Das ist das Programm, welches als Eingabe das vorliegende Skript überreicht bekommt. Im Beispiel liegt der Perl-Interpreter in »Work:+C« und heißt einfach »Perl«. Vor dem Namen stehen Zeichen, die die Zeile als Kommentar für den Perl-Interpreter markieren. Skriptgate akzeptiert # ; . und / als Kommentarzeichen.
Um auf diese Art ein Amiga-Shell-Skript zu starten, müssen Sie in die erste Zeile nur
; Execute
schreiben. Ein Beispiel steht in »Test.shell«. Die dazugehörige HTML-Seite finden Sie in »Shelltest.html«. Sie verlangt von Ihnen, einen Assign oder Laufwerksnamen ohne Doppelpunkt einzugeben. Als Antwort erhalten Sie eine HTML-Seite mit dem Inhalt des angegebenen Verzeichnisses. Das Skript sollte Ihnen aber nicht nur als einfaches Beispiel, sondern auch als Warnung dienen: Wer statt eines Assigns die Zeichenfolge
`delete sys: all force quiet`
eingibt, löscht damit die Workbench-Partition des Amigas, auf dem der Web-Server läuft (bitte nicht ausprobieren)! Shell-Skripte sind daher stets mit allergrößter Vorsicht einzusetzen.
Weitere Hinweise zu Skriptgate und dessen
Source-Code in C finden Sie in dem aws.lha-Archiv
Viel Spaß beim Ausprobieren!
© 1998 All Rights Reserved. Alle Rechte vorbehalten Franzis' Verlag GmbH
Veröffentlichung und Vervielfältigung nur mit schriftlicher Genehmigung des Verlags