2

Apache2サーバーにデプロイする方法をテストできるように、1ファイルのFlaskアプリを作成しました。サーバーとWSGIの構成に関する限り、 Flaskの手順に従いました。ブラウザでリソースをポイントすると、権限がないと表示されます。WSGI デーモンには、Flask アプリと同じ権限が付与されます。以下は、VirtualHost の構成です。

<VirtualHost *:80>

ServerName localhost 

WSGIDaemonProcess flask_test user=someuser group=someuser threads=5
WSGIScriptAlias /flask_test/ /var/www/flask_test/flask_test.wsgi

DocumentRoot /var/www/flask_test/
ErrorLog /var/www/flask_test/logs/error.log

    <Directory /var/www/flask_test/>
        WSGIProcessGroup flask_test
        WSGIApplicationGroup %{GLOBAL}
        WSGIScriptReloading On
        Order deny,allow
        Deny from all
    </Directory>

</VirtualHost>

ここにWSGIファイルがあります

import sys

activate_this = '/home/someuser/pyProjects/general/venv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

sys.path.append('/home/someuser/pyProjects')

from general import test as application

そして最後に error.log からの出力

[Tue Jul 31 01:51:18 2012] [error] Exception KeyError: KeyError(140345719740224,) in <module 'threading' from '/usr/lib/python2.6/threading.pyc'> ignored
[Tue Jul 31 01:51:21 2012] [error] [client 108.207.222.48] client denied by server configuration: /var/www/flask_test/flask_test.wsgi
[Tue Jul 31 01:51:21 2012] [error] [client 108.207.222.48] client denied by server configuration: /var/www/flask_test/favicon.ico

編集: Graham Dumpleton 提案サーバーを実装した後、次のエラーでコード 500 が返されるようになりました TypeError: 'module' object is not callable

4

2 に答える 2

2

問題は .wsgi ファイルにありました。アプリ オブジェクトを正しくインポートしませんでした。基本的に、wsgi でアプリ オブジェクトがアプリケーションとしてインポートされていることを確認する必要があります。例えばfrom flask_test import app as application

于 2012-07-31T04:03:15.163 に答える
2

一般的に欲しい:

WSGIScriptAlias /flask_test/ /var/www/flask_test/flask_test.wsgi

サブ URL のマウント ポイントに末尾のスラッシュはありません。

さらに悪いのは、あなたが持っていることです:

Deny from all

したがって、明示的にApacheに禁止を返すように指示しています。

あなたが持っている必要があります:

Allow from all

その文脈で。

于 2012-07-31T02:30:34.557 に答える