Настройте Lighttpd для запуска скрипта Python с помощью fastcgi

Настройте Lighttpd для запуска скрипта Python с помощью fastcgi

У меня есть сервер lighttpd, на котором я хочу запустить приложение python с помощью fastcgi. Я следовалпример на главной странице lighty, но я не могу заставить lighty выполнить скрипт python. Это мой раздел fastcgi в 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,
        )
    ))

Вот содержимое 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()

Когда я перезапускаю lighty с этой конфигурацией, я вижу, что процесс python запущен, и я не получаю никаких ошибок от lighty. Однако, когда я иду вhttps://localhost:444/test.pyон просто продолжает загружаться вечно. Ничего не написано в access.log или error.log. Если кто-нибудь может дать мне подсказку, как это исследовать, я был бы благодарен.

EDIT: Я включил fastcgi.debug, и это записывается в журнал ошибок, когда я перехожу по указанному выше URL. Он все еще продолжает загружаться вечно:

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 

решение1

По вашему мнению fcgitest.py,

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

Ни один из примеров не включает bindAddressпараметр, который есть у вас.

Попробуйте вместо этого это,


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

Связанный контент