Seite 1 von 1
[Python] Error Code 403
Verfasst: Donnerstag 24. Februar 2005, 10:34
von Ravebaby
Ich habe gerade versucht, meinen ersten Python Webserver laufen zu lassen.
Es existiert ein Ordner mit einem .py File das einen CGI-fähigen HTTP-Server enthält:
Code: Alles auswählen
import os
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler
srvraddr=("",8080)
cgisrv=HTTPServer(srvraddr,CGIHTTPRequestHandler)
cgisrv.serve_forever()
Wenn ich den starte, stellt er auch eine Verbindung her und unter
http://localhost:8080
erscheint folgende Ausgabe
In cgi-bin/ liegt mein File HelloWorld.py, welches so aussieht:
Code: Alles auswählen
import os
print "Content-Type: text/html"
print
print "<H1>Hello World</H1>"
Wird
http://localhost:8080/cgi-bin/ oder
http://localhost:8080/cgi-bin/HelloWorld.py im Browser eingegeben erscheint jedoch
Code: Alles auswählen
Error response
Error code 403.
Message: CGI script is not a plain file ('/cgi-bin/').
Error code explanation: 403 = Request forbidden -- authorization will not help.
Warum denn nur?!
Danke für jede Hilfe
Edit (Leonidas): Codes in Tags gesetzt.
Verfasst: Donnerstag 24. Februar 2005, 15:15
von Leonidas
Vielleicht hilft dir das ja etwas:
Code: Alles auswählen
import os
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler
cgihandle = CGIHTTPRequestHandler
print os.getcwd()
cgihandle.cgi_directories += [os.path.join(os.getcwd(), "cgi-bin")]
print cgihandle.cgi_directories
print os.path.join(os.getcwd(), "cgi-bin")
srvraddr = ("", 8080)
cgisrv = HTTPServer(srvraddr, cgihandle)
cgisrv.serve_forever()
Verfasst: Donnerstag 24. Februar 2005, 15:20
von Ravebaby
Habs grad getestet, ändert jedoch an der Fehlermeldung leider nichts
Verfasst: Donnerstag 24. Februar 2005, 15:42
von Leonidas
Also wenn ich es als hw.py in die URL Adresszeite eingebe, nachdem ich im cwd einen Ordner cgi-bin mit hw.py drin habe, würde das bei mir (theoretisch) gehen (es scehitert bei mir an anderen Gründen).
Verfasst: Donnerstag 24. Februar 2005, 15:54
von Ravebaby
komisch, ich verstehs nicht. Hast auch keine Ahnung woran es liegen könnte?
Es müsste ja egal sein, wo das Verzeichnis vom Webserver in meinem Filesystem liegt, oder?! Ist nur wichtig, dass ich darin das Webserverfile liegt und der cgi-bin Ordner darin existiert und dort die auszuführenden Files liegen, oder?!
Verfasst: Donnerstag 24. Februar 2005, 16:23
von Leonidas
Du kannst dem CGI Server ja angeben, wo er nach CGIs schauen soll, per cgi_directories, das habe ich ja gemacht. Was gibt er bei dir denn für eine Fehlermeldung, genau die gleiche wie beim letzten mal. DU musst das Script aus dem gleichen Verzeichnis starten, wo auch cgi-bin drin ist.
Verfasst: Donnerstag 24. Februar 2005, 16:30
von Ravebaby
ja, er gibt noch dieselbe Fehlermeldung aus. Und ja, ich starte es aus demselben Verzeichnis. Ja und bei mir heißt das Verzeichnis ja auch cgi-bin.
Verfasst: Donnerstag 24. Februar 2005, 17:09
von joe
Hi!
Seltsam ist, daß du bei
http://localhost:8080/cgi-bin/HelloWorld.py die fehlermeldung
Message: CGI script is not a plain file ('/cgi-bin/') bekommst und nicht
Message: CGI script is not a plain file ('/cgi-bin/HelloWorld.py'). Ist das wirklich so?
Daß
http://localhost:8080/cgi-bin/ diese fehlermeldung erzeugt, ist richtig.
BTW: Auf welchem OS läuft das?
joe
Verfasst: Donnerstag 24. Februar 2005, 17:38
von Ravebaby
Oh, Du hast recht. Die von mir beschriebene Fehlermeldung kommt wirklich nur, wenn ich
http://localhost:8080/ eingeb und nicht bei
http://localhost:8080/HelloWorld.py
Wenn ich
http://localhost:8080/HelloWorld.py direkt eingebe, lädt men Browser einfach ewig und zeigt gar nichts an. Steht immer nur "Waiting for localhost..."
Ich hab Windows XP Home als OS.
Verfasst: Donnerstag 24. Februar 2005, 18:49
von Leonidas
Was sagt der log im Server?
Verfasst: Donnerstag 24. Februar 2005, 19:46
von jens
Verfasst: Donnerstag 24. Februar 2005, 19:47
von Ravebaby
keine Ahnung, wo steht das Logfile?!
Verfasst: Donnerstag 24. Februar 2005, 19:48
von jens
Es bleibt doch das DOS-Fenster auf und darin werden die LOG-Einträge aufgelistet...
Verfasst: Donnerstag 24. Februar 2005, 20:45
von Ravebaby
nee, ich führ nichts in nem dos Fenster aus. Ich hab das Python - Prog einfach in meinem Interpreter gestartet. War wohl falsch?!
Verfasst: Donnerstag 24. Februar 2005, 20:55
von Leonidas
Na du solltest es in cmd aufmachen, per python httpd.py
Verfasst: Donnerstag 24. Februar 2005, 21:36
von Ravebaby
Oh wie Panne, ich habs!!!!!
Ich hatte nen Leerzeichen im Ordner wo der Server drin lag. Oh verflucht....
und dafür soviel Zeit geopfert!!!!