在 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
。
如果不修复此问题,您将在修复第一个问题后收到不同的错误。
我正在使用 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
。
如果不修复此问题,您将在修复第一个问题后收到不同的错误。