FAQ CGI ======= Q01: Wie kann ich CGIs ausführen lassen? Q02: Ich kriege immer nur HTTP Code 500 - Server Error ------------------------------------------------------------------------ Q01: Wie kann ich CGIs ausführen lassen? A01: Lege in dem Ordner, in dem die CGI-Skript untergebracht sind die Datei ".htaccess" an und schreibe folgenden Inhalt hinein: Options +ExecCGI SetHandler cgi-script Ab jetzt werden alle Dateien mit der Endung ".cgi" als Skripte betrachtet und ausgeführt. Natürlich kann man da auch ".pl" oder andere Endungen draus machen. Siehe http://httpd.apache.org/docs/mod/core.html#files Dran denken, dass Einstellungen in der .htaccess nicht nur für den Ordner gelten, in dem sie stehen sondern auch für alle Unterordner, es sei denn die Einstellung wird dort überschrieben. --------------------------------------------------------------------------- Q02: Ich kriege immer nur HTTP Code 500 - Server Error A02: Wirf mal einen Blick in die error.log Datei deiner Domain. Wenn da "premature end of script" steht, dann kann das mehrere Ursachen haben, z.B. diese hier: * Das CGI-Skript ist fehlerhaft und erzeugt nicht die gewünschte Ausgabe, z.B. wurde der Content-Type-Header vergessen. Im Zweifelsfall mit einem ganz schlichten Skript anfangen, z.B. sowas hier: #!/bin/sh echo "Content-Type: text/plain" echo date * Die Zugriffsrechte stimmen nicht. Die Datei muss ausführbar sein (Mode 755 oder Mode 775), der Ordner muss lesbar sein. Bitte auf keinen Fall Mode 777 (schreibbar für alle) vergeben, auch nicht zum Testen. Nur zu schnell vergisst man, das wieder zurückzustellen und schon hat man ein potenzielles Einfallstor für Angreifer geöffnet. * Ganz tückischer Fehler: Owner/Group ist falsch. Das betreffende Skript und der Ordner, in dem es liegt, muss dem gehören, unter dessen UID/GID die Domain läuft. Andernfalls verweigert suexec aus Sicherheitsgründen seinen Dienst. Das ist ein Punkt, den wahrscheinlich nur die Admins erkennen und fixen können. Erster Anlaufpunkt ist dann die Datei /var/log/apache/suexec.log. ------------------------------------------------------------------------ Settel.