|
CGI, was ist das überhaupt?
CGI (Common Gateway Interface) wird für Interaktive Inhalte einer HTML-Seite verwendet. CGI erlaubt es einem WWW-Browser, über einen WWW-Server Programme auszuführen. Solche Programme, meist Skripts genannt, hat jeder schon einmal gesehen oder gar benutzt. Beispiele sind zB. Besucherzähler, Gästebücher, Diskussionsforen, Suchmaschinen oder Linklisten.
[ Zurück zum Anfang ]
Vorteile von CGI gegenüber Java und Javascript.
CGI Skripte sind zwar nicht immer leicht zu installieren, haben aber gegenüber Java und Javascript -Anwendungen klare Vorteile. CGI ist Browserunabhängig, es ist meist schnell in der Ausführung der Anwendung, es ist vielseitig einsetzbar und trägt zur Interaktivität des WWW bei.
[ Zurück zum Anfang ]
Was wird für den Einsatz von CGI benötigt?
Jeder Account auf unseren Servern beinhaltet ein eigenes CGI-Verzeichnis. Die notwendigen Pfade die für gewöhnlich bei der Anwendung von CGI-Scripten gebraucht werden:
Realer Pfad zu den Webseiten: /var/www/webx/html/ Realer Aufruf des CGI-BIN Verzeichnisses: /var/www/webx/cgi-bin Virtueller Aufruf via Web des CGI-BIN Verzeichnisses: http://www.ihre-domain/cgi-bin/ oder /cgi-bin/
Pfad zu Perl: /usr/bin/perl Pfad zu Sendmail: /usr/sbin/sendmail
[ Zurück zum Anfang ]
Der Upload eines CGI-Skripts und das setzen von Datei-Rechten
Der Upload und das richtige setzen von Dateirechten ist mit der wichtigste Vorgang, damit das CGI-Script später auch richtig funktioniert. Bei unseren Servern muß das CGI-Script immer in das Verzeichnis cgi-bin upgeloadet werden. CGI-Scripte ( haben meist die Endung".cgi" oder manchmal auch ".pl") müssen mit einem FTP-Programm ( zB. WS-Ftp, oder LeechFTP) immer im ASCII-Modus übertragen werden. Anschließend muß man noch die Rechte für das Skript und alle anderen Daten und Dateien, die das jeweilige Skript benutzt, vergeben. Eine falsche Vergabe ist meist die Hauptursache, wenn das Skript nicht funktioniert. Das setzen von Rechten geschieht mittels sogenannten CHMOD's. Jetzt werden Sie sicher fragen: "Was ist das nun schon wieder ???" Ganz einfach, CHMOD's sind Skripteinstellungen, welche sich nach dessen Einsatzzweck richten. Hierbei unterscheidet man zwischen drei Arten, es gibt: Leserechte, Schreibrechte, und Ausführungsrechte . CHMOD werden durch das FTP-Programm vergeben, indem man das jeweilige Skript oder die jeweilige Datei mit der rechten Maustaste anklickt und im Kontextmenue auf einen Eintrag namens "Change file attributes", "Commands", "FTP-Commands" oder ähnliches (vom jeweiligen FTP-Programm, das Sie benutzen abhängig) Nachfolgend sind die vier am häufigsten vorkommenden CHMOD's am Beispiel LeechFTP erklärt.
 |
Bei vielen FTP-Programmen kann man auch die CHMOD Ziffer direkt in eine Auswahlbox eingeben., man gibt dann einfach nur die Ziffer ohne den Zusatz Chmod ein. Die Einstellungen, die bei den verschiedenen Skripten notwendig sind, erfährt man immer aus einer Readme-Datei, die der Zip-Datei des Skriptes meist immer beiliegt, allerdings oftmals in Englisch ist. Beachten Sie, das diese Einstellungen immer erst nach dem Upload auf den WWW-Server erfolgen können. Ihre Skripte müssen dazu also bereits auf dem WWW-Server lagern. Beispiel: Skript eines Counters Die Datei "counter.cgi" im Verzeichnis cgi-bin wird mit CHMOD 755 versehen. Die Datei "counter.txt" im Verzeichnis counter wird mit CHMOD 666 versehen. Wenn man nun im Browser die Datei "counter.cgi" bzw die HTML-Seite, wo der Counter eingebunden ist, aufruft, dann sollte man die Ziffern des Counters sehen, wobei der Counter auf 000001 stehen sollte. Wenn Sie diese Anzeige sehen, dann haben Sie es geschafft, und ihre erste CGI-Anwendung für ihre Webseiten fertig konfiguriert. Sie sollten nun in der Lage sein, auch andere CGI-Skripte auf ihre Webseiten abzustimmen.
[ Zurück zum Anfang ]
Was tun bei einer Fehlermeldung nach Ausführung eines CGI-Scriptes
Sie versuchen beispielsweise ein CGI/Perl-Script auszuführen und erhalten eine Fehlermeldung ? Bei der Verwendung von CGI/Perl gibt es grundlegende Vorgehensweisen und wichtige Informationen. Da dieser Fehler unzählige Ursachen haben kann hier nur einige Stichpunkte, worauf bei Verwendung von CGI-Scripts geachtet werden muss.
Sind alle Pfade im Script richtig gesetzt? Vor allem dem Perl- und Sendmailpfad sind in nahezu allen Skripten verlangt.
Sind alle Permissions (Zugriffsrechte) richtig eingestellt? Auch die Permissions zu evt. vom Script eingelesenen Dateien prüfen! Die Rechte sollten für gewöhnlich auf 755 eingestellt werden. Auch darauf achten, dass man keine Schreibrechte für Others (Welt) einstellt. Hier kann es vorkommen, dass der Sicherheitsmechanismus suEXEC greift und zu einem Fehler führt.
Wurde das Script im Unix Zeichensatz gespeichert? Ist dies nicht der Fall stimmen die Zeilenumbrüche und dadurch auch die meisten Pfadangaben nicht.
Wurde das Script im ASCII-Modus übertragen? Textdateien, Scripts und ähnliches müssen mit dem FTP-Programm als ASCII übertragen werden. Bilder, Programme und ähnliches im Binärmodus
Wurde bei Perl-Scripts der "Content-Type" definiert? Perl Scripts verlangen bei Ausgaben auf dem Browser nach einem definierten Content-Type. Dies wird meist durch den Befehl 'print "Content-Type: text/html";' erreicht. Ist dieser Befehl nicht vorhanden findet sich im Fehlerlog des Servers bei Aufruf ein Fehler der Art "permature end of script headers"
Wenn Sie all diese Punkte beachtet haben und Ihr Script danach immer noch nicht funktionieren sollte liegt es in 95% der Fälle wirklich an einem Programmierfehler.
[ Zurück zum Anfang ]
|