在ubuntu14.01下通过apache部署django
首先需要下载python,django,apache以及wsgi模块
python基本已经自带,我用的是2.7,不是的话可以重新装一个
下载django
sudo pip install django使用pip下载最新的django如果没有pip可以用sudo apt-get install python-pip下载,pip是很有用的下载工具下载的下来的基本都是最新的
下载apache2
sudo apt-get install apache2
下载wsgi
sudo apt-get install libapache2-mod-wsgi
下载失败可以尝试sudo apt-get upgrade
需要修改两个文件
一
自己项目下新建一个apache文件夹,在文件夹里新建一个django.wsgi内容如下i
import os
import sys
path = '/var/www'
if path not in sys.path:
sys.path.insert(0, '/var/www/yourproject')
os.environ['DJANGO_SETTINGS_MODULE'] = 'yourproject.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
二
在/etc/apache2/sites-available/新建一个yourproject.conf文件
<VirtualHost *:80>
ServerName www.xxx.com(域名,没有域名的可以填ip下面的ServerAlias不填)
ServerAlias xxxxxx(ip)
DocumentRoot /var/www/yourproject
<Directory /var/www/yourproject>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
WSGIDaemonProcess yourproject processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup yourproject
Alias /statics/ /var/www/yourproject/statics/#静态文件
WSGIScriptAlias / /var/www/yourproject/apache/django.wsgi
</VirtualHost>
接着sudo a2ensite yourproject
sudo /etc/init.d/apache2 reload
打开网站查看是否成功
如果失败就看看错误日记
sudo /var/log/apache2/error.log
成功之后就开始导入数据库
mysql -u root -p
create database xxx
use database xxx
source /x/x/x.sql
导入成功后查看是否成功
遇到的问题:
Error importing module django.middleware.security: "No module named security"
引起这种问题的原因是django1.8之后加入了django.middleware.security,服务器上的django版本可能过低,无法识别。
解决办法:
sudo pip install django==1.10.2目前最新版本
或者到setting.py注释掉这个东西
a2ensite,a2dissite,激活或者取消激活site
a2enmod,a2dismod,激活或者取消激活mod
a2enconf,a2disconf激活或者取消激活conf