通过WSGI将Django项目部署到Apache的问题

时间:2016-09-01 17:40:41

标签: django apache mod-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线程,这让我疯狂。任何见解都表示赞赏。感谢。

2 个答案:

答案 0 :(得分:1)

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

.

这对我们生产中的许多其他事情都是必要的。为了除了我的项目之外,在我的Apache配置文件中我删除了

AddHandler cgi-script .cgi .pl .py

而是把

Options ExecGI

现在页面显示正常。

答案 1 :(得分:-1)

如果没有关于

的更多信息,这个问题是无法回答的
  1. 剩下的筹码;
  2. 你的django项目有哪些依赖项;
  3. 您安装了哪些Python版本;
  4. 你是如何安装Python和Apache的;
  5. 你如何运行Apache。