apache服务器使用wsgi部署django站点

来源:互联网 发布:阿里云系统盘和数据盘 编辑:程序博客网 时间:2024/05/21 21:01

先说一下个人的部署环境,分别部署过两次(ubuntu13.04+apache2+django1.4.5和ubuntu12.04+apache2+django1.4.5)

介绍一下背景,django站点已经开发完毕,只需要部署

为了叙述得清楚点,所以从安装环境开始介绍

首先安装apache2和wsgi

sudo apt-get install apache2 libapache2-mod-wsgi

下面一步安装django,分两种情况叙述

1、使用apt-get直接安装

sudo apt-get install python-django

2、使用安装包安装

首先安装所需的setuptools

sudo apt-get install python-setuptools

然后下载自己所需的Django版本https://www.djangoproject.com/

解压,并安装

tar zxvf Djangoxxxxcd Djangoxxxxxsudo  python setup.py install
完成安装后,先进入将Django工程拷入apache目录下

sudo cp webserver/ /var/www

更改一下webserver的权限,这一步一定注意,我就被权限问题坑了两天,最后才发现时工程目录的权限问题

sudo chmod -R 755 webserver

由于开发时是用的django1.4.5因此已经自带wsgi文件,工程目录下叫做django.wsgi

直接用它即可

为了后面的方便,在DNS缓存/etc/hosts中加入下面一行

www.example.com     127.0.0.1

然后采用虚拟站点的方式进行配置

进入/etc/apache2/site-availble

创建虚拟站点文件myweb,并配置,输入以下内容(关于静态文件的处理写了下注释)

也可以直接把下面的内容覆盖到default,如果这样就不用去改hosts了

<VirtualHost *:80>ServerName www.example.comDocumentRoot /var/www/webserverAlias /static/ /var/www/webserver/static/                 #用来解决css/js/img等静态文件的问题,css.js.img均存在webserver/static下<Directory /var/www/webserver/static/>Order deny,allowAllow from all</Directory>        WSGIScriptAlias / /var/www/webserver/django.wsgi<Directory /var/www/webserver>Order allow,denyAllow from all</Directory></VirtualHost>
用a2ensite使虚拟主机生效

sudo a2ensite myweb

让apache2重新加载一下

sudo service apache2 reload

打开浏览器,输入www.example.com(如果直接覆盖的default则输入127.0.0.1),一切运行正常

但仍然存在一个问题,Django的admin模块的静态文件失效,下面解决这个问题,进入工程目录webserver,输入collectstatic命令,导出静态文件

python manage.py collectstatic 
把导出的css js img整理到static文件夹下对应的文件夹里即可

再重新加载一下apache2,打开浏览器,一切正常!




原创粉丝点击