Home Login Sitemap Suche

CGI-Scripte und php3 bei INKA


Allgemeines

Jeder INKA-Kunde hat die Möglichkeit in seinen WWW-Seiten auch CGI-Scripte einzusetzen. Da der Userrechner ein Linux-Rechnersystem ist, ist eine Vielzahl verschiedener Scriptsprachen (Shellscripte, perl, python etc.) verfügbar. Eine Ausführung von Windows/DOS CGI-Programme ist jedoch nicht möglich. Auch unterstützt der Server keine Frontpage-Extensions. Eine Alternative stellt vielleicht php3 dar, was ebenfalls auf dem Userrechner zur Verfügung steht.

Das Verzeichnis cgi-bin

Das Zielverzeichnis für die CGI-Scripte nennt sich cgi-bin und befindet sich im öffentlichen Bereich des INKA-User-WWW Server. Sie erreichen es mit "cd /public/Wxxxx/cgi-bin". Jeder INKA-User hat natürlich sein eigenes cgi-bin Verzeichnis.

Das cgi-bin Verzeichnis muß mit den richtigen Unix-Zugriffsrechten (0701 oder Owner Read/Write/Execute, Group None, Other Execute) ausgerüstet sein. INKA legt standardmäßig dieses Verzeichnis bei der Einrichtung des Zuganges an. Sollten die Zugriffsrechte des Verzeichnis einmal nicht mehr stimmen, so können Sie dies selbst mit einem FTP-Client oder über den Shellzugang auf den INKA-Userrechners korrigieren.

php3

php3 können Sie in allen HTML-Seiten Ihres Webangebots verwenden. Wichtig ist dabei, dass die Datei auf .phtml oder .php3 endet. Nur in solchen Dateien werden php3 Befehle ausgeführt. Damit auch Befehle wie include oder exec zur Verfügung stehen, ist php3 bei uns als CGI installiert. Damit ist sichergestellt, dass die php3 Befehle unter der richtigen Userid ausgeführt werden. Aus diesem Grund sind php3 Seiten im cgi-bin Verzeichnis leider nicht möglich. Weitere Informationen, was alles mit php3 möglich ist, finden Sie auf der php3-Homepage.

Upload

Laden Sie die CGI-Scripte immer im ASCII-Modus Ihres FTP-Clients auf den INKA-Userrechner. Beachten Sie, daß die Dateirechte für das CGI-Script auf 0700 stehen müssen (Owner Read/Write/Execute, Group None, Other None). Sie können diese Rechte wiederum über Ihren FTP-Client oder über den Shellzugang einstellen. Direkt im Linux-Shellzugriff (z.B. über ssh oder telnet) gehen Sie wie folgt vor:
$ chmod 0700 /public/Wxxxx/cgi-bin/scriptname

Anpassung der CGI-Scripte

Viele CGI-Scripte müssen auf die Gegebenheiten des Userrechners angepasst werden. Dabei sind folgenden Pfade wichtig:

  • CGI-Heimatverzeichnis: /public/Wxxxx/cgi-bin
  • sendmail: /usr/lib/sendmail
  • date: /bin/date
  • perl: /usr/bin/perl
  • sh: /bin/sh
Übrigens: Alle perl-Scripte müssen in der ersten Zeile
#!/usr/bin/perl
enthalten, damit Sie richtig funktionieren. Ähnliches gilt für SHELL-Scripte, die meist mit
#!/bin/bash
beginnen.

Troubleshooting

Leider sind häufig Fehlermeldungen, die der Webserver bei einem fehlerhaften CGI-Script liefert, nicht besonders aussagekräftig. So werden Sie unter anderem mit folgender Fehlermeldung konfrontiert:
     Internal Server Error

     The server encountered an internal error or misconfiguration and
     was unable to complete your request.

     Please contact the server administrator, webmaster@inka.de and
     inform them of the time the error occurred, and anything you might
     have done that may have caused the error.
     Premature end of script headers:

     /sda7/public/W9999/cgi-bin/beispiel.cgi
Vielleicht können folgende Hinweise in einem solchen Fall weiterhelfen:

Jedes CGI-Script muß als erste Ausgabe den Text "Content-type: text/html\n\n" liefern. Wenn dies nicht geschieht, z.B. aufgrund eines Ausführungsfehlers, wird obige Fehlermeldung erscheinen. Als mögliche Ursachen kommen dabei in Frage:

  1. Tippfehler im CGI-Script
  2. Falsche Zeilenenden durch BINARY FTP-Übertragung von DOS/Windows-Textdateien auf den INKA-Userrechner.

Am einfachsten lassen sich Ausführungsfehler des CGI-Script durch direktes Starten auf dem Userrechner herausfinden.

Erhält man bei einem perl-Script z.B. die Fehlermeldung:

Illegal character \015 (carriage return) at script.pl line 2.
(Maybe you didn't strip carriage returns after a network transfer?)
so ist das perl-Script auf DOS/Windows erstellt und im BINARY-Modus des FTP-Clients auf den INKA-Userrechner hochgeladen worden. Dies hat zur Folge, daß die Zeilenenden statt mit LineFeed (unter Linux/Unix nötig) mit CarriageReturn/LineFeed enden. Diese Datei läßt sich dann auf dem Userrechner nicht ausführen.

Hier hilft nur, die Datei wie vorgeschlagen im ASCII-Modus des FTP-Clients hochladen oder ein direktes Ändern der Zeilenenden mit dem Unix-Programm dos2unix. Letzteres setzt allerdings Linux/Unix-Grundkenntnisse voraus, da dieser Befehl nur im Linux-Shellzugriff des INKA-Userrechner zur Verfügung steht.

Zurück zur Homepage-Anleitung

Zuletzt geändert
am 23.06.2001

 
INKA e.V.
Postfach 3341
76019 Karlsruhe
Tel. 0721-388590
Fax 0721-388598
info@inka.de
www.inka.de