it-swarm.com.de

Wie hostet man ein Python-CGI-Skript mit `python -m SimpleHTTPServer 8000` oder` python -m CGIHTTPServer 8000`?

Wenn ich python -m SimpleHTTPServer 8000 oder python -m CGIHTTPServer 8000 in meiner Shell ausführe, hoste ich den Inhalt meines aktuellen Verzeichnisses im Internet.

Ich möchte, dass die folgende Datei cgi_script.py mit dem obigen Befehl in der Befehlszeile ordnungsgemäß funktioniert, wenn ich zu 192.xxx.x.xx:8000/cgi_script.py navigiere.

#!/usr/bin/env python
print "Content-Type: text/html"
print
print """\
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""

Aber dieses Skript wird wörtlich angezeigt und nicht nur die "Hallo Welt!" Teil. Übrigens habe ich die Dateiberechtigungen für cgi_script.py sowie den Ordner, in dem ich es hosten möchte, in 755 geändert.

22
Bentley4

Versuchen Sie es mit python -m CGIHTTPServer 8000.

Beachten Sie, dass Sie das Skript in ein Verzeichnis cgi-bin oder htbin verschieben müssen, damit es ausgeführt werden kann.

33
rodrigo

SO erlaubt mir nicht zu kommentieren, also füge ich dies als separate Antwort hinzu, zusätzlich zu Rodrigos.

Sie können einen anderen Parameter cgi_directories verwenden, der standardmäßig ['/cgi-bin', '/htbin'] verwendet wird. Mehr Infos hier

6
spawnedc

Führen Sie für mich den Befehl python -m CGIHTTPServer 8000 in derselben Menüebene mit cgi-bin aus, und verschieben Sie cgi_script.py in den Ordner cgi-bin. Im Browsertyp http: // localhost: 8000/cgi-bin/cgi_script.py

0
Brian

in Python3 ist die Befehlszeile einfach

python -http.server --cgi 8000
0
AchimG

@ Bentley4 -ifyou können immer noch nicht, Versuchen Sie, cgi zu importieren.

#! C:\Python34\python.exe -u Import cgi Print ("Inhaltstyp: text/html")

HTH

0
sabiyur

Als ich auf dieses Problem gestoßen bin, habe ich festgestellt, dass abhängig davon, in welchem ​​Verzeichnis Sie sich befinden, wenn Sie den Befehl python -m CGIHTTPServer 8000 ausführen, unterschiedliche Ergebnisse erzielt werden. Beim Versuch, den Befehl auszuführen, während sich das Verzeichnis cgi-bin im Browser befindet, hat der Browser den Code für das unformatierte Skript zurückgegeben. Sobald ich eine Stufe höher gesetzt und den Befehl python -m CGIHTTPServer 8000 erneut ausgeführt hatte, wurde mein Skript ausgeführt. 

0
Marquis Blount