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

先说一下个人的部署环境,分别部署过两次(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 Djangoxxxx
cd Djangoxxxxx
sudo  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.com

	DocumentRoot /var/www/webserver

	Alias /static/ /var/www/webserver/static/                 #用来解决css/js/img等静态文件的问题,css.js.img均存在webserver/static下

	<Directory /var/www/webserver/static/>
	Order deny,allow
	Allow from all
	</Directory>

        WSGIScriptAlias / /var/www/webserver/django.wsgi

	<Directory /var/www/webserver>
	Order allow,deny
	Allow 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,打开浏览器,一切正常!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值