Seite 1 von 4
[bottle] Startschwierigkeiten
Verfasst: Donnerstag 8. April 2010, 10:26
von lynadge
Hallo Leute.
Ich habe Startschwierigkeiten mit bottle und bekommen immer einen: "Internal Server Error".
Vom Prinzip her probiere ich nur ein "Hello World!" Script von der bottle Dokumentation aus.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bottle import route, run
@route('/')
def index():
return "Hello World!"
run(host='barfooz.de', port=80)
Die selbe Datei Funktioniert aber mit dem Script:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cgitb
cgitb.enable()
print "Content-Type: text/html;charset=utf-8\n"
print "Hello World"
Nun steh ich etwas auf dem Schlauch. Ich hoffe Ihr könnt mir ein paar Tipps geben.
Gruß, deadshox
Verfasst: Donnerstag 8. April 2010, 10:50
von nemomuk
Die Fehlermeldung "Internal Server Error" ist ziemlich ungenau, vllt. zeigst du mal den ganzen Traceback.
Ansonsten scheint mir das der falsche Weg zu sein, da du versuchst den Host zu ändern (kann mich aber auch täuschen) - im Regelfall benutzt man den wsgiref.SimpleServer nur für Entwicklungszwecke und damit auf localhost.
Siehe hier:
http://bottle.paws.de/docs/tutorial.html#deployment
Verfasst: Donnerstag 8. April 2010, 11:38
von lynadge
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, ... and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Das ist die komplette Meldung.
Wie gehe ich es denn richtig an?
Verfasst: Donnerstag 8. April 2010, 11:41
von .robert
Versuch mal, was passiert, wenn du als Host "localhost" einträgst.
Verfasst: Donnerstag 8. April 2010, 11:44
von jbs
sonst `bottle.debug(True)`
Verfasst: Donnerstag 8. April 2010, 11:46
von lynadge
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bottle import route, run, debug
@route('/')
def index():
return "Hello World!"
debug(True)
run(host='localhost', port=80)
Die Meldung verändert sich leider nicht. ;(
Verfasst: Donnerstag 8. April 2010, 12:05
von /me
deadshox hat geschrieben:Die Meldung verändert sich leider nicht. ;(
Welche Python-Version und welches Betriebssystem setzt du ein?
Verfasst: Donnerstag 8. April 2010, 12:08
von lynadge
Auf dem Server läuft ein Debian Lenny mit Python2.5. Habe aber mit der Administration nichts zu tun.
Verfasst: Donnerstag 8. April 2010, 12:36
von Defnull
Die Fehlermeldung kommt nicht von bottle, sondern wahrscheinlich von deinem Webserver, der versucht, das Skript als CGI-Skript aus zu führen. Das geht zwar (siehe Beispiel unten) aber wird nicht empfohlen.
Bottle als CGI-Script verwenden:
Verfasst: Donnerstag 8. April 2010, 12:36
von ms4py
Könnte ein Rechteproblem sein.
Versuch mal einen anderen Port > 5000, z.B. 8080. Port 80 geht nur als root, afaik.
Verfasst: Donnerstag 8. April 2010, 13:02
von Rebecca
ms4py hat geschrieben:Könnte ein Rechteproblem sein.
Versuch mal einen anderen Port > 5000, z.B. 8080. Port 80 geht nur als root, afaik.
Der Server laeuft ja, also ist das nicht das Problem.
Verfasst: Donnerstag 8. April 2010, 13:14
von lynadge
Leider Funktioniert das:
auch nicht.
Verfasst: Donnerstag 8. April 2010, 13:43
von nemomuk
deadshox hat geschrieben:Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bottle import route, run, debug
@route('/')
def index():
return "Hello World!"
debug(True)
run(host='localhost', port=80)
Die Meldung verändert sich leider nicht. ;(
Wenn sich dabei an der Fehlermeldung nichts ändert, hat das definitiv nichts mit Bottle, sondern mit der Server-Konfiguration zu tun.
Verfasst: Donnerstag 8. April 2010, 14:04
von lynadge
Aber ich will doch nur ein ersatz für das CGI Script, wie das 2. Script im ersten Post.
FastCGI und WSGI sollen aber laut meines Administrator auch Funktionieren. Nur sehe ich da nicht gant durch wie bottle mit WSGI Funktionieren soll.
Re: [bottle] Startschwierigkeiten
Verfasst: Donnerstag 8. April 2010, 14:30
von jens
deadshox hat geschrieben:bekommen immer einen: "Internal Server Error"
Das kann viele Gründe haben und es ist so einfach festzustellen, welcher Grund es bei dir ist.
Deswegen hatte ich vor längerer Zeit diese Seite ins leben gerufen:
http://wiki.python-forum.de/Web-Skripte ... %20bringen
Geht mal die "Liste der möglichen Ursachen" durch...
Verfasst: Freitag 9. April 2010, 07:27
von lynadge
Hallo Jens.
Ich bin deine Liste durchgegangen, leider ohne erfolg.
Das mod_python Script läuft aber:
http://python.barfooz.de/test.py
Verfasst: Freitag 9. April 2010, 07:32
von jens
Du must irgendwas übersehen haben
Wenn das mod_Python test script läuft, dann ist das schon mal ein Ausgangspunkt. Vergleiche, was bei dem anders ist zu den anderen Sachen... Also chmod, Datei/Verzeichnis Rechte, .htaccess, Zeilenenden, shebang usw. Halt das was in der Liste steht...
Verfasst: Freitag 9. April 2010, 07:41
von lynadge
Heh. ^^
Es war diese Zeile
die den Unterschied machte.
Leider gibt es noch immer noch nicht das gewünschte Ergebnis.
server hat geschrieben:Bottle server starting up (using WSGIRefServer (barfooz.de:80))... Listening on
http://barfooz.de:80/ Use Ctrl-C to quit.
Aber danke schon mal, das lässt mich aufatmen und noch hoffen.

Verfasst: Freitag 9. April 2010, 09:05
von jens
Da benutzt du wohl Bottle falsch, nicht als CGI...
Hast du
http://www.python-forum.de/post-166381.html#166381 beachtet?
Verfasst: Freitag 9. April 2010, 09:33
von lynadge
Da hat er wieder mal nicht aufgepasst. ^^
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
print "Content-Type: text/html;charset=utf-8\n"
from bottle import route, run
@route('/')
def index():
return "Hello World!"
run(server=bottle.CGIServer, host='python.barfooz.de', port=80)
So sieht mein Script jetzt aus und der Aufruf bleibt leer. Ich komm mir langsam schon doof vor weil ich mir alles vorkauen lasse. :/