8

Apacheの特定のディレクトリに対してWSGIを使用してPythonをセットアップしようとしていますが、次のエラーが発生します。

mod_wsgi (pid=3857): Target WSGI script '/var/www/test/test.py' does not contain WSGI application 'application'.

私のtest.pyには以下が含まれています:

print 'Hello, World!'

そして、私のwsgi.confには次のものが含まれています。

LoadModule wsgi_module modules/mod_wsgi.so

WSGIPythonHome /usr/local/bin/python2.7

Alias /test/ /var/www/test/test.py

<Directory /var/www/test>
    SetHandler wsgi-script
    Options ExecCGI
    Order deny,allow
        Allow from all
</Directory>

それに加えて、興味深いことに、Webブラウザは「404NotFound」エラーを返しますが、ありがたいことに、error_logはもう少しわかりやすいものです。

私は何が間違っているのですか?

4

1 に答える 1

13

あなたはそれがCGIであるかのようにWSGIを使用しています(奇妙なことにヘッダーなし)。

あなたがする必要があるのは、あなたの当面の問題のために、http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuideから以下を適応させることです

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

あなたがapplication存在するように。

そして、参照されたドキュメントから。

mod_wsgiでは、WSGIアプリケーションのエントリポイントを「application」と呼ぶ必要があることに注意してください。それを別の名前で呼びたい場合は、他の名前を使用するようにmod_wsgiを明示的に構成する必要があります。したがって、関数の名前を勝手に変更しないでください。そうすると、他のすべてを正しく設定しても、アプリケーションが見つかりません。

于 2013-01-19T03:00:46.810 に答える