CGI-Scripts auf trash.net


Von Lukas Karrer (lkarrer auf trash.net)


Für den Gebrauch von eigenen CGI-Scripts gelten einige spezielle Vorkehrungen. Weiter müssen die CGI-Scripts z.T. speziell konfiguriert werden, dass sie auf trash.net funktionieren.

Achtung: CGI-Skripte sind trash.net Mitglieder vorbehalten! Falls Du noch kein Mitglied bist, musst du zuerst den Mitgliederbeitrag einzahlen. Als Mitglied stehen dir neben CGI's noch weitere Vorteile zu.

Anlegen von CGI-Scripts

CGI-Scripts müssen unter dem Namen scriptname.cgi oder scriptname.pl irgendwo in Deinem public_html Verzeichniss abgelegt werden. Die Scripts werden über einen Link in einer HTML-Page ausgeführt. Der Aufruf erfolgt mit http://www.trash.net/~DeinLogin/ScriptName.cgi

Achtung: Die meisten auf dem 'net auffindbaren CGI-Scripts sind in PERL geschrieben (Dateinamen enden auf .pl). Der Programmname und Inhalt des Hauptprogramms muss so abgeändert werden, sodass diese Regeln eingehalten werden!

Aus Sicherheitsgründen müssen alle Scripts eine spezielle Berechtigung haben (ähnlich wie bei der Homepage). Wähle dich mit einem Telnet-Programm in Dein Unix-Account ein und gib folgenden Befehl ein.

username@access1:~>chmod -R 755 public_html

Weiter ist wichtig, dass im Script der Programm-Interpreter richtig eingestellt ist. Falls das CGI in Shell-Script-Sprache programmiert wurde, muss die erste Zeile in jedem Programm-File #!/bin/sh lauten. Analog gilt für in PERL geschriebene Scipts der Verweis #!/sw/bin/perl

Hier ein Beispiel:

#!/sw/bin/perl
#
# Dies ist mein erstes Script
print "Hello World";

Achtung: Dies ist in den meisten Scripts auf #!/usr/local/bin/perl vordefiniert.

Debuggen von CGI-Scripts

Ein Script wirt meistens nicht beim ersten Anlauf gleich funktionieren. Die Seite "Server Error" wird Dir sehr wahrscheinlich ziemlich oft begegnen.

Die Auszuege aus den Logfiles helfen Dir meist weiter. Diese Logs sind ziemlich gross. Mit folgenden Befehlen kannst du die letzten Einträge anschauen:

username@access1:~> tail /d1/trash-www/logs/trash-access_log
username@access1:~> tail /d1/trash-www/logs/suexec.log
username@access1:~> tail /d1/trash-www/logs/trash-error_log

Im access_Log findest Du den Eintrag auf welche Files zugegriffen wurde. Im error_log findest Du allfällige Fehler bei der Ausführung des Scripts. Im suexec.log sind Probleme mit der Berechtigung notiert.

Noch eine Bitte: Perl-Scripts sind sehr CPU-Intensiv. Gib mir doch ein Mail, bevor du ein CGI-Script laufen lässt. Weiter wäre es sinnvoll, wenn du eine gutes Script gleich allen trash.net Benutzern zur Verfügung stellen würdest. Falls das Script funktioniert, kannst Du mich bitten, das Script im Haupt-Cgiverzeichniss zu installieren.