【发布时间】:2017-03-04 04:12:22
【问题描述】:
我有一个 CentOS 7 服务器,其中包含大约 20 个域,所有域都通过 /etc/httpd/conf.d 中的 vhosts 文件自动管理。
我正在尝试学习 Django 并想使用它设置一个域,所以我在 .conf 文件中添加了一个特定的虚拟主机。
结果是 Django 域工作正常,但 所有其他站点都坏了(尝试使用 Django 但会导致错误)。
Django 域有两个文件夹: djangodomain.com 用于静态文件,djangodomain.app 用于 Python 文件。
如何将单个 Django 域集成到我现有的多域虚拟主机设置中?
现有的 vhosts.conf:
<VirtualHost *:80>
serveradmin username@domain.com
serveradmin username@domain.com
usecanonicalname off
# www.site.com » site.com
rewriteengine on
rewritecond %{HTTP_HOST} ^www\.(.*)$ [nc]
rewriterule ^(.*)$ http://%1 [r=301,l]
# file locations
virtualdocumentroot "/home/username/%0"
<directory "/home/username/*">
allowoverride all
require all granted
options indexes followsymlinks
options +execcgi
options +includes
</directory>
</VirtualHost>
我添加的内容破坏了除 Django 网站之外的所有内容:
<VirtualHost djangodomain.com:80>
ServerName djangodomain.com
ServerAlias www.djangodomain.com
ServerAdmin user@domain.com
DocumentRoot /home/username/djangodomain.com
WSGIScriptAlias / /home/username/djangodomain.app/django.wsgi
<Directory /home/username/djangodomain.app>
Order allow,deny
Allow from all
</Directory>
Alias /robots.txt /home/username/djangodomain.com/robots.txt
Alias /favicon.ico /home/username/djangodomain.com/favicon.ico
Alias /images /home/username/djangodomain.com/images
Alias /static /home/username/djangodomain.com/static
ErrorLog /home/username/djangodomain.logs/error.log
CustomLog /home/username/djangodomain.logs/access.log combined
</VirtualHost>
【问题讨论】:
-
看起来你只需要在 vhosts.conf 文件中,将 django 部分放在底部
-
我试过了,但没有任何改变。我还尝试将它放在一个单独的文件中,在动态虚拟主机之后加载。
-
不要在 virtualhost 指令中使用名称。
标签: django apache virtualhost httpd.conf centos7