记录本人在自己的XEN VPS上用Apache2跑Django项目的配置过程
===============================================
我的虚拟主机:
Ubuntu12.04 + Apache 2.2 + python2.7 + Django1.6.1(使用pip安装的)
+ blablabla
===============================================
参考文档:
https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/modwsgi/
http://www.cnblogs.com/zhengyun_ustc/archive/2009/08/11/wsgi.html
http://wiki.ubuntu.org.cn/Apache%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E6%8C%87%E5%8D%97
https://www.digitalocean.com/community/articles/installing-mod_wsgi-on-ubuntu-12-04
================================================
首先参考教程,安装mod_wsgi
前置条件:
sudo aptitude install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
安装mod_wsgi (感谢ubuntu自己带了这个安装包)
sudo aptitude install libapache2-mod-wsgi
搞定之后重启apache
sudo service apache2 restart
================================================
第二步,是找一个地方,自己新建一个Django项目,比如我的项目位置在
/media/static/django-proj/priv_map
然后新建一个文件夹,比如我的文件夹叫apache,来存放wsgi的配置文件
import os, sys sys.path.append('/media/static/django-proj/priv_map') os.environ['DJANGO_SETTINGS_MODULE'] = 'priv_map.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
上面的配置就自己看啦,我的django项目名字是叫priv_map来着的
然后接着下一步,需要在apache的配置目录中建立一个虚拟主机,这样当输入网址时能够根据内容转向到我们的django程序。当然你也可以不新建虚拟主机,直接修改default配置文件,这个我没有试过,不过肯定是可行的!参考文献中有使用这个方法做的。
找到你的Apache配置目录:
/etc/apache2/sites-available
新建一个文件,自定义命名,反正等下要用命令行来启用的
我的访问的站点是a.dayandcarrot.net
<VirtualHost *:80> ServerName a.dayandcarrot.net ServerAlias a.dayandcarrot.net DocumentRoot /media/static/django-proj/priv_map WSGIScriptAlias / /media/static/django-proj/priv_map/apache/django.wsgi Alias /static /media/static/django-proj/static <Location "/static"> SetHandler None </Location> <Directory "/media/static/django-proj/static"> Order Deny,Allow Allow from all </Directory> <Directory "/media/static/django-proj/priv_map/apache"> Order Deny,Allow Allow from all </Directory> </VirtualHost>
其中有django的ststic目录配置好了,需要另加media目录的话,照葫芦画瓢就行吧。
保存好这个文件。
然后启用这个虚拟主机:
a2ensite a.dayandcarrot.net
后面的a.dayandcarrot.net是你刚才新建的文件的名字.
然后apache重新加载下
service apache2 reload
应该就搞定啦!