web-dev-qa-db-ja.com

fastcgiを使用してpythonスクリプトを実行するようにLighttpdを構成します

Fastcgiを使用してpythonアプリケーションを実行したいlighttpdサーバーがあります。 lightyホームページの例 に従いましたが、lightyになれないようです。 pythonスクリプトを実行します。これはlighttpd.confのfastcgiセクションです:

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には何も書き込まれていません。誰かがこれを調査する方法についてのヒントを教えてくれたら、ありがたいです。

編集: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 
2
Gasp0de

あなたの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()
1
rage