ubuntuusers.de

Apache führt CGI-Skripts nicht aus

Status: Gelöst | Ubuntu-Version: Server 8.04 (Hardy Heron)
Antworten |

Saxman

Anmeldungsdatum:
12. August 2008

Beiträge: 145

Hallo,

Habe einen Apache-Server aufgesetzt und möchte darauf bugzilla laufen lassen. Dafür müssen allerdings cgi-Skripts ausgeführt werden. Das leistet mein Apache aber leider nicht. Beim Aufruf der entsprechenden Seite sehe ich immer nur direkt den Quellcode.

Ich habe das CGI-Modul und das Perl-Modul in Apache aktiviert (liegt in mods-enabled).

Ich kann perl-Skripts per Konsole ausführen (habe ein kleines Testskript erfolgreich gestartet).

Ich vermute, dass es an meiner apache2/sites-available/default liegt. Weiß jemand wo der Fehler liegt?

NameVirtualHost *:80
<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName localhost
	
	DocumentRoot /srv/www/

	# deny access to root directory
	<Directory />
		Options FollowSymLinks
		AllowOverride None
		#Order deny,allow
		#Deny from all
		#Allow from localhost
	</Directory>

	# main directory
	<Directory /srv/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		Allow from all
	</Directory>

	# bugzilla
	<Directory /srv/www/bugzilla/>
		AddHandler cgi-skipt .cgi .pl
		Options Indexes ExecCGI
		DirectoryIndex index.cgi
		AllowOverride Limit
		Order allow,deny
		Allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined
	ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost> 

Ich habe keine anderen virtuellen Hosts definiert.

Um das besser testen zu können habe ich folgendes Skript in /srv/www/bugzilla kopiert. Von diesem Skript weiß ich, dass wenn ich es auf der Konsole ausführe, dass es da funktioniert.

#!/usr/bin/perl
print "Content-type: text/\n\n";
print "It worked!\n";

Wenn ich es test.pl nenne und im Browser aufrufe, dann will Firefox es abspeichern. Wenn ich es test.cgi nenne sehe ich wieder den Quellcode.

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Ist das Skript für den Webserver-Benutzer ausführbar?

Saxman

(Themenstarter)

Anmeldungsdatum:
12. August 2008

Beiträge: 145

Ich habe dem Skript mal die Rechte 777 gegeben. Funktioniert allerdings immer noch nicht.

Gruppe ist www-data, d.h. der Apache nutzer hat auf jeden Fall die Rechte das auszuführen.

Saxman

(Themenstarter)

Anmeldungsdatum:
12. August 2008

Beiträge: 145

keine Ideen mehr?

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Hallo,

schau dir diese Zeile nochmal genau an:

		AddHandler cgi-skipt .cgi .pl

Saxman

(Themenstarter)

Anmeldungsdatum:
12. August 2008

Beiträge: 145

Was ist das Problem daran? Tut mir leid, bin nicht so der Fachmann...

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Dort steht cgi-skipt, sollte aber wohl eher cgi-script heißen.

Saxman

(Themenstarter)

Anmeldungsdatum:
12. August 2008

Beiträge: 145

oh mein Gott wie peinlich ☺

Das war tatsächlich das Problem! Danke

Antworten |