发布通过 WSGI 将 Django 项目部署到 Apache

Issue deploying Django project to Apache via WSGI

Ubuntu 14.04.4 和 Django 1.10

我正在尝试通过 WSGI 将一个简单的 Django 应用程序部署到 Apache,该应用程序在开发中可以完美运行。我的 Apache 配置文件中的相关位:

<VirtualHost [my IP]>
    WSGIScriptAlias /Django/MedFormUpdates /home/web/inside/django/MedFormUpdates/MedFormUpdates/wsgi.py
    WSGIApplicationGroup %{GLOBAL}
</VirtualHost>

WSGIPythonPath /home/web/inside/django/MedFormUpdates/MedFormUpdates

<Directory "/home/web/inside/django/MedFormUpdates/MedFormUpdates">
        Options ExecCGI
        <Files wsgi.py>
            Require all granted
        </Files>
</Directory>

在我的 wsgi.py 文件中:

import os, sys
from django.core.wsgi import get_wsgi_application

sys.path.append('/home/web/inside/django')
sys.path.append('/home/web/inside/django/MedFormUpdates')

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MedFormUpdates.settings")

application = get_wsgi_application()

在我的 settings.py 中:

WSGI_APPLICATION = 'MedFormUpdates.wsgi.application'

当我尝试加载页面时,我得到“很抱歉,网络服务器出现内部错误。”- Apache 日志显示

End of script output before headers: wsgi.py

我浏览了所有我能找到的 Django/WSGI/Apache 话题,这让我抓狂。任何见解表示赞赏。谢谢

如果没有关于

的更多信息,这个问题是不可能回答的
  1. 你的剩余筹码;
  2. 你的 django 项目有哪些依赖项;
  3. 您安装了哪些Python个版本;
  4. 您如何安装 Python 和 Apache;
  5. 你好运行阿帕奇

事实证明,我们在目录 /etc/apache2/conf-enabled 中还有另一个 Apache 配置文件,它具有以下设置,它将 Python 脚本(以及 Perl 和 CGI​​)绑定到 CGI:

AddHandler cgi-script .cgi .pl .py

这对于我们在生产中拥有的许多其他东西来说是必要的。为了将我的项目排除在外,我在我的 Apache 配置文件中删除了

Options ExecGI

改为

RemoveHandler .py

现在页面显示正常。