Interpreter für die erste Zeile eines CGI-Skripts auslesen
Verfasst: Donnerstag 28. Februar 2008, 20:49
Hallo
Ich bin im Buch Python GE-PACKT über die Internetprogrammierung per CGISkript gestolpert und bin gerade dabei das auszuprobieren.
Da ich sonst keinen Webserver zu Verfügung habe, benutze ich einen kleinen in Python geschriebenen:
Diesen Code habe ich in einen Order httpserver gelegt, in dem ich auch einen cgi-bin Ordner erstellt habe.
Zum Testen habe ich mir eine kleine .html datei erstellt, die ich über
"http://localhost:8080/test.html" im Browser über diesen Server öffnen kann. (Klappt auch, wenn ich keinen Internet Anschluss habe, wenn ich stattdessen versuche testxyz.html aufzurufen, bekomme ich eine Fehlermeldung von meinem kleinen Server).
Jetzt wollte ich ein kleines Skript testen:
Wie man sieht, nichts großes. Diese Datei habe ich in den cgi-bin-Ordner gelegt.
Wenn ich jetzt "http://localhost:8080/cgi-bin/uhr.py" von meinem Browser (Firefox) verlange, bekomme ich von meinem Server die Fehlermeldung
Erster Ansatz bei mir war jetzt die erste Zeile im eigentlichen Skript, da war ich mir nicht sicher, wenn ich die Python Shell öffne, steht da in den ersten beiden Zeilen das hier:
Alternativ sieht es nach fehlenden Zugriffsrechten aus, auf die erwähnte .py habe ich aber vollen Zugriff.
Vielen Dank, dass du es dir bis hier durchgelesen hast
Wer also einen Tipp hat, nur her damit, mir sind die Ansätze ausgegangen.
Nikolas
Ich bin im Buch Python GE-PACKT über die Internetprogrammierung per CGISkript gestolpert und bin gerade dabei das auszuprobieren.
Da ich sonst keinen Webserver zu Verfügung habe, benutze ich einen kleinen in Python geschriebenen:
Code: Alles auswählen
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler
serveradresse =("", 8080)
server = HTTPServer(serveradresse, CGIHTTPRequestHandler)
server.serve_forever()
Zum Testen habe ich mir eine kleine .html datei erstellt, die ich über
"http://localhost:8080/test.html" im Browser über diesen Server öffnen kann. (Klappt auch, wenn ich keinen Internet Anschluss habe, wenn ich stattdessen versuche testxyz.html aufzurufen, bekomme ich eine Fehlermeldung von meinem kleinen Server).
Jetzt wollte ich ein kleines Skript testen:
Code: Alles auswählen
#! /Developer/usr/bin/i686-apple-darwin8-gcc-4.0.1
from time import *
print "Content-Type: text/html"
print
print "<html><head><title> CGI-Sript </title> </head>"
print "<body><h1>Datum und Zeit </h1>"
print "Es ist ",ctime(time())+"."
print "</body></html>"
Wenn ich jetzt "http://localhost:8080/cgi-bin/uhr.py" von meinem Browser (Firefox) verlange, bekomme ich von meinem Server die Fehlermeldung
localhost - - [28/Feb/2008 20:40:09] "GET /cgi-bin/uhr.py HTTP/1.1" 200 -
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/CGIHTTPServer.py", line 251, in run_cgi
os.execve(scriptfile, args, os.environ)
OSError: [Errno 13] Permission denied
localhost - - [28/Feb/2008 20:40:09] CGI script exit status 0x7f00
Erster Ansatz bei mir war jetzt die erste Zeile im eigentlichen Skript, da war ich mir nicht sicher, wenn ich die Python Shell öffne, steht da in den ersten beiden Zeilen das hier:
Und die Datei in der ersten Zeile hat da am besten drauf gepasstPython 2.5.1 (r251:54869, Apr 18 2007, 22:08:04)
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin

Alternativ sieht es nach fehlenden Zugriffsrechten aus, auf die erwähnte .py habe ich aber vollen Zugriff.
Vielen Dank, dass du es dir bis hier durchgelesen hast

Wer also einen Tipp hat, nur her damit, mir sind die Ansätze ausgegangen.
Nikolas