使用mod_wsgi部署Flask应用程序无法加载其依赖项,我的设置中是否有错误?

时间:2018-01-04 13:51:15

标签: python apache flask mod-wsgi

我试图使用Apache和mod_wsgi部署一个烧瓶应用程序。

我关注了instructions on the official flask documentation

我安装了Apache和mod_wsgi(我不确定它是否为python 3.5安装了,但我找不到任何方法可以检查)。

我为我的应用程序myapp创建了一个虚拟环境,并安装了所有必需的依赖项(使用pip)。

string.h

我按照上一个链接中的建议创建了一个myapp.wsgi文件:

virtualenv -p python3 env

我为我的应用程序创建了一个vhost

activate_this = '/var/www/myapp/env/bin/activate_this.py'
with open(activate_this) as file_:
    exec(file_.read(), dict(__file__=activate_this))

from project import app as application

当我尝试使用浏览器访问我的应用程序时出现500错误并且日志错误

<VirtualHost *:80>

    ServerName myapp.com

    WSGIScriptAlias / /var/www/myapp/myapp.wsgi

    <Directory /var/www/myapp>
            Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我认为在激活虚拟环境时存在问题。

有什么想法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

我在Apache配置文件中遗漏了这两行:

WSGIPythonHome /var/www/myapp/env/bin/python3.5
WSGIPythonPath /var/www/myapp/env/lib/python3.5/site-packages

他们需要 out VirtualHost部分。

https://stackoverflow.com/a/27451634/2254402