我在 Ubuntu Server 12.04 上使用 Django 1.4 和 Python 2.7。我正在尝试在单个服务器上托管多个网站。我是 Apache 新手,在设置虚拟主机时似乎写错了一些东西。
我拥有 2 个要在单个服务器上托管的域。打电话给他们www.my_first_domain.com
和www.my_second_domain.com
。
现在,我要托管超过 3 个 Django 项目。将指向一个项目www.my_first_domain.com
。将指向一个项目www.my_second_domain.com
。所有其他项目将指向www.my_second_domain.com
.
即project3.my_second_domain.com
,project4.my_second_domain.com
等
我已经管理 DNS 让所有这些都指向正确的 IP。我已经用`host www.my_first_domain.com
, host www.my_second_domain.com
,host project3.my_second_domain.com
等验证了这一点。它们都指向正确的 IP。
下面是我设置的 3 个文件示例,以尝试使其正常工作。
/etc/apache2/sites-enabled/project1
<VirtualHost *:80>
ServerName www.my_first_domain.com
ServerAlias *.my_first_domain.com my_first_domain.com
DocumentRoot /var/www/project1
CustomLog /var/log/apache2/www.my_first_domain.com-access.log combined
ErrorLog /var/log/apache2/www.my_first_domain.com-error.log
WSGIScriptAlias / /home/user1/website/project1/project1/wsgi.py
<Directory /home/user1/website/project1/project1>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
/etc/apache2/sites-enabled/project2
<VirtualHost *:80>
ServerName www.my_second_domain.com
ServerAlias my_second_domain.com
DocumentRoot /var/www/project2
CustomLog /var/log/apache2/www.my_second_domain.com-access.log combined
ErrorLog /var/log/apache2/www.my_second_domain.com-error.log
WSGIScriptAlias / /home/user2/website/project2/project2/wsgi.py
<Directory /home/user2/website/project2/project2>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
/etc/apache2/sites-enabled/project3
<VirtualHost *:80>
ServerName project3.my_second_domain.com
DocumentRoot /var/www/project3
CustomLog /var/log/apache2/project3.my_second_domain.com-access.log combined
ErrorLog /var/log/apache2/project3.my_second_domain.com-error.log
WSGIScriptAlias / /home/user3/website/project3/project3/wsgi.py
<Directory /home/user3/website/project3/project3>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
如果我去 www.my_first_domain.com 一切看起来都是正确的。当我访问 www.my_second_domain.com 时,我会看到 www.my_first_domain.com 上的内容(我的第一个项目,而不是我的第二个项目)。如果我去 project3.my_second_domain.com 我会得到一个Internal Server Error
.
如果我查看 project3 的错误日志,它看起来像是在尝试加载 project1 的 Django 设置。
我故意清空/etc/apache2/httpd.conf
,因为我的印象是sites-enabled
文件将被用来代替httpd.conf
像我这样使用虚拟主机时。
我不相信我修改了任何其他配置文件。关于我做错了什么有什么想法吗?