sutterp
20.05.03, 11:18
Guten Tag,
Ich möchte dass Apache die index.cgi in irgendeinem Verzeichnis (innerhalb der Apache Struktur) ausführt, nicht nur von cgi-bin aus. Die Datei index.cgi ist ein Perl Skript. Um dies zu erreichen, habe ich folgende Einträge in meiner httpd.conf:
DocumentRoot "/www"
<Directory />
AuthUserFile /etc/httpd/passwd
AuthGroupFile /etc/httpd/group
AddHandler cgi-script .cgi
Options All Indexes FollowSymLinks +Multiviews EXECcgi
AllowOverride All
</Directory>
<Directory "/www">
Options Indexes FollowSymLinks +Includes MultiViews EXECcgi
AddHandler cgi-script .cgi
AllowOverride all
Order allow,deny
Allow from all
</Directory>
DirectoryIndex index.html index.cgi
So innerhalb der Apache Struktur, von / an abwärts, sollten eigentlich EXECcgi und AddHandler cgi-script gültig sein. Jedoch wenn ich versuche index.cgi anzusprechen, bekomme ich im Fehlerlog folgenden Eintrag:
[Tue May 20 14:09:13 2003] [error] (13)Permission denied: exec of /www/index.cgi failed
[Tue May 20 14:09:13 2003] [error] [client 192.168.1.189] Premature end of script headers: /www/index.cgi
/www/index.cgi hat 755 als privilegien.
Was übersehe ich? Hab ich irgendwas zu spezifizieren welches die Interpretierung von index.cgi als Perl Skript zulässt, mit Ausnahme von #!/bin/perl in der ersten Zeile des Skriptes?
Der Perl Skript selbst ist in Ordnung, da dieser korrekt abläuft wenn ich ihn ins cgi-bin Verzeichnis kopiere.
Ein su nach wwwrun erlaubt mir den Skript mit perl -T /www/index.cgi fehlerfrei auszuführen, also scheinen die Protektion Codes den ganzen Pfad entlang richtig zu sein. Wenn ich den Skript als wwwrun ausführen kann, warum kann Apache das dann nicht? Ich nehme deshalb an, dass irgend etwas im httpd.conf fehlt.
Wo klemmts?
Vielen Dank für jegliche Tips.
Peter Sutter
Ich möchte dass Apache die index.cgi in irgendeinem Verzeichnis (innerhalb der Apache Struktur) ausführt, nicht nur von cgi-bin aus. Die Datei index.cgi ist ein Perl Skript. Um dies zu erreichen, habe ich folgende Einträge in meiner httpd.conf:
DocumentRoot "/www"
<Directory />
AuthUserFile /etc/httpd/passwd
AuthGroupFile /etc/httpd/group
AddHandler cgi-script .cgi
Options All Indexes FollowSymLinks +Multiviews EXECcgi
AllowOverride All
</Directory>
<Directory "/www">
Options Indexes FollowSymLinks +Includes MultiViews EXECcgi
AddHandler cgi-script .cgi
AllowOverride all
Order allow,deny
Allow from all
</Directory>
DirectoryIndex index.html index.cgi
So innerhalb der Apache Struktur, von / an abwärts, sollten eigentlich EXECcgi und AddHandler cgi-script gültig sein. Jedoch wenn ich versuche index.cgi anzusprechen, bekomme ich im Fehlerlog folgenden Eintrag:
[Tue May 20 14:09:13 2003] [error] (13)Permission denied: exec of /www/index.cgi failed
[Tue May 20 14:09:13 2003] [error] [client 192.168.1.189] Premature end of script headers: /www/index.cgi
/www/index.cgi hat 755 als privilegien.
Was übersehe ich? Hab ich irgendwas zu spezifizieren welches die Interpretierung von index.cgi als Perl Skript zulässt, mit Ausnahme von #!/bin/perl in der ersten Zeile des Skriptes?
Der Perl Skript selbst ist in Ordnung, da dieser korrekt abläuft wenn ich ihn ins cgi-bin Verzeichnis kopiere.
Ein su nach wwwrun erlaubt mir den Skript mit perl -T /www/index.cgi fehlerfrei auszuführen, also scheinen die Protektion Codes den ganzen Pfad entlang richtig zu sein. Wenn ich den Skript als wwwrun ausführen kann, warum kann Apache das dann nicht? Ich nehme deshalb an, dass irgend etwas im httpd.conf fehlt.
Wo klemmts?
Vielen Dank für jegliche Tips.
Peter Sutter