如何配置Django网站以使用Apache VirtualHosts?

时间:2016-04-11 10:23:59

标签: python django apache centos virtualhost

我最近开始开发Django网站,我想将它们部署在带有mod_wsgi和Apache的CentOS VPS上。

我跟着this guide并且它工作得很好,但我希望同时运行多个Django网站,所以我尝试在正确的配置文件中创建多个虚拟主机,然后出现了问题。

<VirtualHost the.ip.of.server:80>
    ErrorLog /root/praxis.error.log

    Alias /static /root/Praxis/static
    <Directory /root/Praxis/static>
        Require all granted
    </Directory>

    <Directory /root/Praxis/Praxis>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess Praxis python-path=/root/Praxis:/root/Env/Praxis/lib/python2.7/site-packages
    WSGIProcessGroup Praxis
    WSGIScriptAlias /praxis /root/Praxis/Praxis/wsgi.py
</VirtualHost>

如果我删除VirtualHost开始和结束标记,该网站将按预期工作,但如果我保留这些标记,我将不断收到404错误。

我真的不明白为什么只有没有标签才能正常工作。

我还尝试在基于IP的虚拟主机和基于名称的虚拟主机之间切换,但没有任何改变。

以下是wsgi.py

wsgi.py

import os

from django.core.wsgi import get_wsgi_application

sys.path.append('/root/Praxis/Praxis')

os.environ['PYTHON_EGG_CACHE'] = '/root/Praxis/.python-egg'
os.environ['DJANGO_SETTINGS_MODULE'] = 'Praxis.settings'

application = get_wsgi_application()

在我的 httpd.conf 文件中,我也有:

Listen 80

ServerName ip.to.the.server #without port specified

#NameVirtualHost *:80 <-- THIS IS A COMMENT RIGHT NOW

先谢谢大家的努力,希望有人能够帮助我,我很难挣扎!谢谢你们。

问题解决了!我发现(实际上我不知道为什么)所有的VIrtualHost都必须放在httpd.conf文件中,而不是放在外部.conf文件中。因此,我将所有内容放在那里并删除所有&#34; IncludeOptional&#34;指令。那就是它!

0 个答案:

没有答案