cgi-Skripte können nicht ausgeführt werden

LuckyWombat

LuckyWombat

Mitglied
Thread Starter
Dabei seit
07.08.2005
Beiträge
26
Reaktionspunkte
0
Hallo an alle!

Ich habe hier ein Problem mit dem Ausführen von cgi-Skripten auf meinem iBook.

Zur Vorgeschichte:

Um cgi zu aktivieren habe ich folgendes gemacht:
Code:
sudo nano /etc/httpd/httpd.conf

Anschliessend habe ich bei folgenden Zeilen das Kommentar-Zeichen entfernt:
Code:
#LoadModule cgi_module libexec/httpd/mod_cgi.so #AddModule mod_cgi.c #AddHandler cgi-script .cgi

Desweiteren habe ich folgende Zeile ergänzt:
Code:
Options Indexes FollowSymLinks MultiViews

Diese sieht jetzt so aus:
Code:
Options Indexes FollowSymLinks MultiViews ExecCGI

Wenn ich aber ein Testskript ausführen will, bekomme ich einen Fehler 403, dass ich nicht über genügend Rechte verfüge, die Datei aufzurufen. Dem Skript habe ich mit chmod 755 ausreichende Rechte gegeben.

Googlen hat mir nicht wirklich geholfen, obwohl das ein häufig vorkommender Fehler zu sein scheint. Ich habe diese Webseite gefunden, in welcher beschrieben wird, dass es unter /private/etc/httpd ebenfalls eine, für den Benutzer spezifische, conf-Datei befindet, die die ursprüngliche httpd.conf überschreibt. Der Autor gibt an, dass man entweder die Zeile
Code:
Include /private/etc/httpd/users/*.conf

in der httpd.conf auskommentiert, oder aber in der benutzerspezifischen Datei ebenfalls die gewünschten Änderungen vornimmt. Beides habe ich ausprobiert, aber ohne Erfolg. Das Auskommentieren hat keine Veränderung gebracht und die benutzerspezifische Datei enthält exakt die gleichen Änderungen, die ich auch nicht erst anpassen musste, da bereits von vornherein vorhanden. Das scheint es also nicht zu sein.

Kann mir da irgendjemand weiterhelfen? Ich bin für jeden Hinweis dankbar.

Zur Vollständigkeit: der Apache Server wurde nach jeder Änderung an der httpd.conf mit
Code:
sudo apachectl restart
neu gestartet. Daran kann es also auch nicht liegen.

Vielen Dank für Eure Hilfe.

Viele Grüsse,
LuckyWombat
 
Noch ein wichtiges Detail: In der Error-Log des Apache Servers steht folgendes:
[Mon Sep 18 10:29:21 2006] [error] [client 192.168.1.3] Options ExecCGI is off in this directory: /Users/Nelly/Sites/blog/mt-check.cgi

Viele Grüsse,
LuckyWombat
 
Anscheinend dürfen in deinem Verzeichnis keine CGIs ausgeführt werden. Probier es doch mal im DocumentRoot. Wenn es sich da aufrufen lässt, dann liegt es nicht am Script.

Grüße,
Flo
 
Wo befindet sich DocumentRoot?

Unter Linux war das unter dem Verzeichnis /htdocs, aber das finde ich bei Mac OS nicht. Wo ist das?

In der Apache-Dokumentation steht übrigens etwas von einem Verzeichnis /usr/local/apache/cgi-bin, welches es bei mir nicht gibt.

Vielen Dank schon mal und viele Grüsse,
LuckyWombat
 
LuckyWombat schrieb:
--- schnipp ---
In der Apache-Dokumentation steht übrigens etwas von einem Verzeichnis /usr/local/apache/cgi-bin, welches es bei mir nicht gibt.
--- schnapp ---

OK, das hat sich schon geklärt. Das ist bei Mac OS das Verzeichnis "/Library/WebServer/CGI-Executables/".
 
Ausserdem finde ich in der Dokumentation folgendes:
htaccess files

A .htaccess file is a way to set configuration directives on a per-directory basis. When Apache serves a resource, it looks in the directory from which it is serving a file for a file called .htaccess, and, if it finds it, it will apply directives found therein. .htaccess files can be permitted with the AllowOverride directive, which specifies what types of directives can appear in these files, or if they are not allowed at all. To permit the directive we will need for this purpose, the following configuration will be needed in your main server configuration:

AllowOverride Options

In the .htaccess file, you'll need the following directive:

Options +ExecCGI

which tells Apache that execution of CGI programs is permitted in this directory.

Bedeutet das, dass ich eine .htaccess Datei in meinem Home-Verzeichnis brauche?
 
LuckyWombat schrieb:
...Bedeutet das, dass ich eine .htaccess Datei in meinem Home-Verzeichnis brauche?

So würde ich das auch interpretieren. Passt ja auch zu der Lösung die in dem Link den Du gepostet hast benutzt wurde, nur eben aus der anderen Richtung.

Grüße,
Flo
 
Zurück
Oben Unten