有人知道如何在Webfaction上部署一个简单的Flask应用程序吗? 我知道Webfaction支持mod_wsgi并且我阅读了Flask网站上的指南,但我仍然无法使我的应用程序正常工作。有人有工作配置吗?
更新以回答Graham Dumpleton的评论。
我收到500内部服务器错误。 Apache在日志中不显示任何错误。 WSGI脚本已执行,似乎正确创建了应用程序,但我一直收到500错误。
感谢。
答案 0 :(得分:16)
我使用以下程序:
创建名为'myapp'的应用程序,类型为mod_wsgi 3.3 / Python 2.7。 Webfaction将创建以下文件夹:
myapp
|- apache2
|- htdocs
Webfaction还会在index.py
目录中自动创建一个简单的脚本htdocs
。检查示例脚本是否可以访问新创建的应用程序的根目录(要在Webfaction上进行精简,您需要在网站上“安装”该应用程序)。如果一切正常,请修改删除内容的脚本并添加:
from myapp import app as application
在apache2/conf/httpd.conf
中添加以下行:
WSGIPythonPath /home/username/webapps/myapp/htdocs/
#If you do not specify the next directive the app *will* work but you will
#see index.py in the path of all subdir
WSGIScriptAlias / /home/username/webapps/myapp/htdocs/index.py
<Directory /home/username/webapps/myapp/htdocs>
AddHandler wsgi-script .py
RewriteEngine on
RewriteBase /
WSGIScriptReloading On
</Directory>
重启apache2
答案 1 :(得分:1)
您需要设置“自定义应用(侦听端口)”应用程序。记下分配的端口。然后在你的Flask代码中,你需要把硬编码放到端口:
if __name__ == __main__:
app.run(host='0.0.0.0' port=XXXXXXX)
使用随机分配到自定义应用的端口替换XXXXXXX。
希望有所帮助。
修改强>
请使用Raben's Answer,这种方式不应在制作中使用。