我在笔记本上运行Ubuntu 14.04,我正在使用Django 1.6.4(与virtualenv一起)和Apache 2.4.7。
我想通过我的本地apache访问两个django项目。因此,这些项目被称为kleyboldt
(我正在写的人的名字)和kleyboldt2
。通常我将我的网络项目存储在/home/nick/Workspace/Web
下。看完教程后,我最终得到了两个指向同一个django项目的域名。为了确保我重写了配置并将我的项目放在/var/www
下。
一开始我写了两个文件来配置apache。
/etc/apache/sites-available/kleyboldt.conf
WSGIPythonPath /var/www/kleyboldt:/var/www/kleyboldt/env/lib/python2.7/site-packages
<VirtualHost *:80>
WSGIScriptAlias / /var/www/kleyboldt/kleyboldt.wsgi
ServerName kleyboldt.com
Alias /static /var/www/kleyboldt/static
<Directory /var/www/kleyboldt/>
Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
/etc/apache2/sites-available/kleyboldt2.conf
WSGIPythonPath /var/www/kleyboldt2:/var/www/kleyboldt2/env/lib/python2.7/site-packages
<VirtualHost *:80>
WSGIScriptAlias / /var/www/kleyboldt2/kleyboldt2.wsgi
ServerName kleyboldt2.com
Alias /static /var/www/kleyboldt2/static
<Directory /var/www/kleyboldt2/>
Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
之后我通过a2ensite
启用了这两个网站。我检查了sites-enabled
目录并正确放置了链接。为了将kleyboldt.com
和kleyboldt2.com
重定向到我的本地apache,我将 / etc / hosts 更改为:
127.0.0.1 localhost
127.0.1.1 mars (name of my computer)
127.0.0.1 kleyboldt.com
127.0.0.1 kleyboldt2.com
为了使用WSGI,我为每个项目在项目文件夹中写了一个单独的wsgi文件:
/var/www/kleyboldt/kleyboldt.wsgi
import os
import sys
sys.path.append('/var/www/kleyboldt')
os.environ['DJANGO_SETTINGS_MODULE'] = 'kleyboldt.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
/var/www/kleyboldt2/kleyboldt2.wsgi
import os
import sys
sys.path.append('/var/www/kleyboldt2')
os.environ['DJANGO_SETTINGS_MODULE'] = 'kleyboldt2.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
我使用virtualenv
创建了两个独立的python环境,现在位于/var/www/kleyboldt/env
和/var/www/kleyboldt2/env
下。
Afterwarsd当我在浏览器的URL栏中键入两个域时,我有两个django测试站点。为了与众不同,我在settings.py
文件中添加了一些设置并编写了自定义视图。
/var/www/kleyboldt/homepage/views.py
from django.http import HttpResponse
def hello(request):
return HttpResponse("kleyboldt1")
/var/www/kleyboldt2/homepage/views.py
from django.http import HttpResponse
def hello(request):
return HttpResponse("kleyboldt2")
当我在浏览器中输入localhost
时,我会返回 kleyboldt2 。当我在浏览器中输入kleyboldt2.com
时,我也会回复 kleyboldt2 。不幸的是,在我的浏览器中输入kleyboldt.com
后,我也看到了 kleyboldt2 。
也许这个错误让我很难发现:D有人知道可能的解决方案吗?