PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum funzt CGI nicht?



Windi
02.09.03, 19:29
Hallo!

Bei meinem Webserver funzt CGI nicht. Ich habe den apachen mit apt-get installiert.

Eine solche Fehlermeldung kommt immer:

[Tue Sep 2 20:20:23 2003] [error] [client 192.168.64.43] Premature end of script headers: /var/www/cgi-bin/monitor.pl


Was muss ich da noch einstellen?
Wäre echt froh über eine Antwort!

ChengFU
02.09.03, 20:30
Dein Skript erzeugt eine fehlerhafte Ausgabe: Evtl. hilft es schon, wenn am Anfang des Skriptes zwei Zeilenumbrüche ausgegeben werden.
Oder werden evtl. Fehlermeldungen beim Aufruf ausgegeben?
Sind die Berechtigungen so gesetzt, dass Ausführen erlaubt ist?

Gruss, CF

Windi
02.09.03, 20:34
Hallo!

Also ich habe nun die ganzen Konfigurationsdateien vom Apachen durchgesehn und mit einer funktionierenden Konfiguration verglichen. Alles ident!

Wenn ich das Skript ./skript.pl in der Konsole ausführe klappts wunderbar!

Aber:
Wenn man den Apache mit apt-get installiert, dann müsste das ja funzen, aber ich habe den User von www-data auf apache geändert. Kann das sein, dass das Auswirkungen hat?

Ich habe die Berechtigung von CGI-Bin schon auf apache:apache gestellt und chmod ist auch schon 777.

Was soll ich denn noch probieren?

Bin komplett ratlos...

fs111
02.09.03, 22:56
in der ersten Zeile der Ausgabe muss etwa sowas stehen

print("Content-type: text/html"); oder je nachdem, wie Dein content type sein soll. Am besten postest Du Dein Skript mal. Zusaätlich solltest Du noch überprüfen, ob überhaubt Skripte mit der Endung .pl ausgeführt werden dürfen, oder nur welche mit .cgi. Als drittes solltest Du dei Benutzerrechte auf 755 setzen.

HTH

fs111

Windi
03.09.03, 08:08
Hallo!

Ja, das funktioniert nun, aber was ich gemerkt habe, ist, dass die CGI Skripte alle unter dem gleichen Namen wie der Apache laufen müssen, dass es funktioniert!

ICh habe ganz am Anfang nach der Installation den User geändert. Also statt apache "www-data". Kann das an dem liegen?

In der suexec.log steht halt folgendes drinnen:


[2003-09-03 08:54:00]: crit: calling user mismatch (apache instead of www-data)

Wie kann ich denn den User von www-data auf apache bei suexec umändern?

Das wäre noch das einzige Problem.
Muss ich in der httpd.conf auch was von suexec finden? Da steht nämlich nichts drinnen!