在 Amazon linux 上编写 mod-wsgi 脚本

Writing a mod-wsgi script on Amazon linux

我正在使用 httpd2.4,在亚马逊 linux 上安装了 mod-wsgi

我的 wsgi 脚本如下所示:

/projects/mv2/test/test.wsgi

import sys
import os

sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))

from test import *

/projects/mv2/test/test.py

from flask import Flask
app = Flask(__name__)

@app.route('/test')
def hello_world():
    return 'Hello, World!'

Apache 配置文件

<VirtualHost *:80>
    ServerName test-algo.com

    WSGIDaemonProcess algos_app user=mv2 group=mv2 threads=1
    WSGIScriptAlias / /projects/mv2/test/test.wsgi

    <Directory /projects/mv2/test/test>
        WSGIProcessGroup algos_app
        WSGIApplicationGroup %{GLOBAL}
        Options MultiViews FollowSymLinks
        AllowOverride all
        Require all granted

    </Directory>
</VirtualHost>

当我点击 url http://test-algo.com/test 时,我收到 403 响应,然后是 httpd error file

[authz_core:error] [pid 27555] [client 153.156.225.142:65083] AH01630: client denied by server configuration: /projects/mv2/test/test.wgi

我找不到 wsgi 脚本有什么问题。

Directory 博客的开头应为:

<Directory /projects/mv2/test>

路径末尾有一个额外的 test

这会导致 403 错误。

WSGI脚本还应该使用:

from test import app as application

WSGI 入口点的名称应该是 application,而不是您的 Flask 文件使用的 app

如果不修复此问题,您将在修复第一个问题后收到不同的错误。