ubuntuusers.de

lighttpd+fastcgi+python?

Status: Ungelöst | Ubuntu-Version: Server
Antworten |

Wolfx

Anmeldungsdatum:
22. Mai 2008

Beiträge: 8

Hallo,

ich habe da ein kleines Problem, lighttpd mit Python als fastcgi an's laufen zu kriegen... ☹ Ich kann problemlos Python-Scripte als "normale" CGIs laufen lassen, aber bei Benutzung von mod_fastcgi haut irgendwas noch nicht hin.

Ich hab mich an diese Doku gehalten: http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModFastCGI

Config:

fastcgi.server = (
    ".py" =>
    (
        "python-fcgi" =>
        (
         "socket" => socket_dir + "fastcgi.python.socket",
         "bin-path" => "test.py",
         "check-local" => "disable",
         "max-procs" => 1,
        )
    ))

test.py

#!/usr/bin/python2.5
def myapp(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    return ['Hello World!\n']

if __name__ == '__main__':
    from flup.server.fcgi import WSGIServer
    WSGIServer(myapp).run()

Es läuft soweit, dass beim Aufruf eines Python-Scripts im Browser (Firefox 6.02) jetzt "Hello World!" angezeigt wird...jedoch nie mehr als das!!! Egal welches Script ich starte, ich erhalte immer "Hello World!".

Scheinbar habe ich da noch ein Verständnis-Problem... Sollte es normalerweise nicht so sein, dass der "test.py"-Prozess, der jetzt dauerhaft läuft (das sollte der fastcgi "Serverprozess" sein, so wie ich's verstanden habe...) jedes Script, was an ihn übergeben wird ausführt, und das "Ergebnis" dann an den Webserver zurück gibt...?

Sehe ich den Wald vor lauter Bäumen nicht? *seufz*

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11260

Wohnort: München

Wie übergibst/startest du denn ein Skript? So wie dein Beispiel aufgebaut ist, kann ja nichts anderes zurückgegeben werden... Du musst übergebene Argumente schon auswerten und darauf basierend dann die Ausgaben regeln. Um zu sehen was ankommt, schau dir mal das Beispiel aus der Doku an: http://docs.python.org/howto/webservers.html#setting-up-fastcgi

Wolfx

(Themenstarter)

Anmeldungsdatum:
22. Mai 2008

Beiträge: 8

Hm...ich hab' mir sowas schon gedacht...sah mir etwas nach "Vodoo" aus, das dass "einfach so" laufen sollte...

Problem ist jetzt, so wie ich's verstanden habe, müsste ich jedes Script per Hand anpassen, damit es als fcgi laufen kann? Das ist natürlich aufwendig, vor allem, wenn ich "einfach nur" ein paar fertige Scripte laufen lassen will (z.B. Bildergalerie), die als "normale" CGIs "out-of-the-box" laufen, jedoch immer diese nervige Verzögerung beim Aufruf der Webseiten haben, durch den Start des Interpreters...

Gibt's da keine "einfache" Lösung, ohne dass man alles per Hand anpassen muss?

Antworten |