带wsgi的Django + Apache出现“内部服务器错误”

时间:2017-09-19 05:25:36

标签: python django apache mod-wsgi wsgi

当我尝试将我的Django项目连接到Apache服务器时,我收到了“500内部服务器错误”。

我尝试了很多方法来设置配置文件,在stackoverflow上包含一些方法。但我仍然无法解决问题,你能给我一些进展吗? 非常感谢你!

我的django项目目录如下:

|django
    |--MySite
        |--MySite
            |--wsgi.py
            |--django.wsgi
            |--urls.py
            |--settings.py
        |--Blog
            |--__init__.py
            |--views.py
            |--models.py

我的设置如下:

  

1.httpd-vhosts.conf:

<VirtualHost *:8080>
    ServerName local.Test
    WSGIScriptAlias / /Users/Hao/django/MySite/MySite/django.wsgi
    <Directory /Users/Hao/django/MySite/MySite>
        Options Indexes MultiViews
        AllowOverride All
        Require all granted
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>
     

2.django.wsgi:

import os, sys
sys.path.append('/usr/local/django')
sys.path.append('/Users/Hao/django')
sys.path.append('/Users/Hao/django/MySite')

os.environ['DJANGO_SETTINGS_MODULE'] = 'MySite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
     

3.最后,我在浏览器中打开127.0.0.1:8080,我得到了“500 Internal”   服务器错误“。

感谢。

1 个答案:

答案 0 :(得分:0)

你必须定义wsgi.py

<VirtualHost *:80>
        ServerName local.Test
        WSGIProcessGroup local.Test
        WSGIPassAuthorization On
        WSGIDaemonProcess local.Test python-home=""#must virtual env path python-path=/Users/Hao/django/
        WSGIScriptAlias / /Users/Hao/django/MySite/MySite/wsgi.py process-group=local.Test

        <Directory /Users/Hao/django/MySite/MySite>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

</VirtualHost>

你的wsgi.py应该是那样的

import os

from django.core.wsgi import get_wsgi_application

import sys
sys.path.append('/Users/Hao/django/MySite')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MySite.settings")
application = get_wsgi_application()