2016-05-16 14 views
0

ich nicht in der Lage bin Python CGI-Skript in ubuntu mit xamppwie Python CGI-Skript in Ubuntu laufen xampp mit

Ich habe gemacht notwendigen Änderungen in httpd.conf (/ opt/lampp/etc)

laufen
<Directory "/opt/lampp/htdocs"> 
    Options +ExecCGI 
    AddHandler cgi-script .cgi .py 
    Order allow,deny 
    Allow from all 
</Directory> 

============================================== ============

und meine python-Skript-Datei ist

#!/usr/bin/python 
# -*- coding: UTF-8 -*-# enable debugging 
import cgitb 
cgitb.enable()  
print "Content-Type: text/html;charset=utf-8" 
print "Hello World!" 

=================================================== ==========

Vielen Dank im Voraus!

+0

Und was passiert? –

+0

Nachdem ich ausgeführt habe, erhalten Fehler als "der Server einen internen Fehler festgestellt und konnte Ihre Anfrage nicht abschließen. Fehlermeldung: Ende der Skriptausgabe vor Kopfzeilen: labels.py" –

+0

In dem Python-Skript auf dem Server bereitgestellt, Gibt es einen Zeilenwechsel zwischen der 2. und 3. Druckanweisung? –

Antwort

0

Die Ausgabe eines CGI-Skripts sollte aus zwei Abschnitten bestehen, die durch eine Leerzeile getrennt sind. Der erste Abschnitt enthält eine Anzahl von Headern, , die dem Client mitteilen, welche Art von Daten folgen.

https://docs.python.org/2/library/cgi.html

In Ihrem aktuellen Codebeispiel die Leerzeile fehlt (nicht im ursprünglich Code geschrieben). Versuchen Sie, die erste print Anweisung Wechsel zu:

print "Content-Type: text/html;charset=utf-8\n "

und es sollte funktionieren (zumindest mit Ubuntu und Apache auf einen Amazon-Server hat)

Mein persönliches Problem Workflow mit Python und cgi.:

+0

Ich erhalte Fehler in error.log als [Di 17. Mai 11: 54: 24.307673 2016] [cgid: Fehler] [pid 15122: tid 140289761994624] (2) Keine solche Datei oder Verzeichnis: AH01241: Exec von '/ var/www/html/test/labels.py 'fehlgeschlagen [Di 17. Mai 11: 54: 24.307933 2016] [cgid: Fehler] [pid 15020: tid 140289461118720] [Client 127.0.0.1:60209] Ende der Skriptausgabe vor Kopfzeilen: labels.py –

+0

In Ihrer httpd.conf ist Ihr CGI-Verzeichnis "/ opt/lampp/htdocs", aber das Python-Skript scheint in '/var/www/html/test/labels.py' zu liegen. Funktioniert es, wenn Sie das Skript verschieben oder http.conf ändern? –

+0

jetzt benutze ich Apache2 und Ubuntu. nicht Xampp. –