11

有人知道如何在 Webfaction 上部署一个简单的 Flask 应用程序吗?我知道 Webfaction 支持 mod_wsgi 并且我阅读了 Flask 网站上的指南,但我仍然无法让我的应用程序正常工作。有人有工作配置吗?

更新以回答 Graham Dumpleton 的评论。

我收到 500 内部服务器错误。Apache 不会在日志中显示任何错误。WSGI 脚本已执行,似乎可以正确创建应用程序,但我不断收到 500 错误。

谢谢。

4

2 回答 2

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

于 2011-06-07T11:36:52.003 回答
1

您需要设置一个“自定义应用程序(监听端口)”应用程序。记下分配的端口。然后在您的 Flask 代码中,您需要对端口进行硬编码:

if __name__ == __main__:
    app.run(host='0.0.0.0' port=XXXXXXX)

您将 XXXXXXX 替换为随机分配给您的定制化应用程序的端口。

希望有帮助。

编辑:

请使用Raben's Answer,这种方式不应该在生产中使用。

于 2010-10-26T15:02:40.543 回答