Konfigurieren Sie Lighttpd so, dass ein Python-Skript mit FastCGI ausgeführt wird.

Konfigurieren Sie Lighttpd so, dass ein Python-Skript mit FastCGI ausgeführt wird.

Ich habe einen Lighttpd-Server, auf dem ich eine Python-Anwendung mit Fastcgi ausführen möchte. Ich habe dieBeispiel auf der Lighty Homepage, aber ich kann Lighty nicht dazu bringen, das Python-Skript auszuführen. Dies ist mein Fastcgi-Abschnitt in lighttpd.conf:

fastcgi.server = (
    ".py" =>
    (
        "python-fcgi" =>
        (
         "socket" => "/tmp/fastcgi.python.socket",
         "bin-path" => "/usr/bin/login_flask/fcgitest.py",
         "check-local" => "disable",
         "max-procs" => 1,
        )
    ))

Dies ist der Inhalt von fcgitest.py:

#!/usr/bin/python3
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, bindAddress="/tmp/fastcgi.python.socket").run()

Wenn ich Lighty mit dieser Konfiguration neu starte, kann ich sehen, dass der Python-Prozess gestartet wird und ich erhalte keinen Fehler von Lighty. Wenn ich jedoch zuhttps://localhost:444/test.pyes lädt einfach ewig weiter. Nichts wird in access.log oder error.log geschrieben. Wenn mir jemand einen Hinweis geben könnte, wie ich das untersuchen kann, wäre ich dankbar.

BEARBEITEN: Ich habe fastcgi.debug aktiviert und dies wird in das Fehlerprotokoll geschrieben, wenn ich die oben genannte URL aufrufe. Es lädt trotzdem ewig weiter:

2019-07-26 11:53:26: (gw_backend.c.914) gw - found a host  0 
2019-07-26 11:53:26: (gw_backend.c.227) got proc: pid: 2628 socket: unix:/tmp/fastcgi.python.socket-0 load: 1 

Antwort1

Laut Ihrem fcgitest.py,

if __name__ == '__main__':
    from flup.server.fcgi import WSGIServer
    WSGIServer(myapp, bindAddress="/tmp/fastcgi.python.socket").run()

Keines der Beispiele enthält den bindAddressParameter, den Sie hier haben.

Versuchen Sie stattdessen Folgendes:


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

verwandte Informationen