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