interner Serverfehler (500) im einfachen CGI-Skript

7

Ich versuche nach der Konfiguration meines Servers ein einfaches CGI-Skript auszuführen.

Mein Skript sieht so aus:

%Vor%

Wenn ich zu meinen Skripten url http://127.0.0.1/~flybywire/cgi-bin/main.py gehe, bekomme ich:

Interner Serverfehler

Der Server hat einen internen Fehler oder eine falsche Konfiguration festgestellt und konnte Ihre Anfrage nicht abschließen.

Und in error.log bekomme ich folgendes:

[error] (8)Exec format error: exec of '/home/flybywire/www/cgi-bin/main.py' failed [error] [client 127.0.0.1] Premature end of script headers: main.py

Weitere Informationen: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 Server at 127.0.0.1 Port 80

    
flybywire 23.09.2009, 08:33
quelle

6 Antworten

21

Sie müssen möglicherweise ein #!/usr/bin/python im oberen Bereich Ihres Skripts verwenden, um Apache mitzuteilen, dass es Python zur Ausführung verwenden soll. Zumindest habe ich das gemacht und es hat für mich funktioniert :-).

    
Paul Stephenson 23.09.2009, 08:44
quelle
9

Speichern Sie die Datei (wenn dies ein Linux-Server ist) mit Unix-Zeilenenden. Du hast es mit chmod +x ausführbar gemacht, oder?

Sie können #!/usr/bin/env python verwenden, um die aktuell laufende Python-Version abzudecken, wenn Sie in verschiedenen Umgebungen arbeiten (daher der env -Teil).

    
Dave Everitt 23.09.2009 08:53
quelle
1

Putting

%Vor%

oben auf dem Skript funktioniert einwandfrei. Ich habe es oben draufgesetzt, aber Netbeans hat extra Code (Importbefehle) oben auf die Seite geschrieben, was mich verrückt gemacht hat: (

    
giga 08.11.2010 19:01
quelle
0

Es sieht so aus, als hätte Apache Schwierigkeiten, es auszuführen. Normalerweise müssen Sie für ein Unix-Skript den Interpreter am Anfang des Skripts angeben.

Versuchen Sie, dies oben hinzuzufügen:

%Vor%     
Andre Miller 23.09.2009 08:45
quelle
0

Vielleicht ist Ihr Problem, dass die neue Python-Version Klammern () benötigt.

Also dein:

%Vor%

Jetzt sollte es sein:

%Vor%     
Heitor Giacomini 29.05.2016 17:15
quelle
0

Entfernen Sie die zweite Zeile in Ihrem Programm (drucken) Ich habe es auf meinem Apache-Server (Mac OS X) versucht es funktioniert gut. Vergessen Sie nicht, chmod 755 und Neustart mit sudo apachectl Neustart Dies ist für Python 2.7

%Vor%     
Rohit Malgaonkar 23.10.2016 16:42
quelle

Tags und Links