Linux 上部署 Django

按照Django官方文档安装Django实在容易迷失,为此老汉写一贴。

我采用的是 ubuntu 12.04 版本 + python 2.7 ,参考了 Ayman Farhat 和 PDX pixel文章,在此致谢。

更新部件

sudo apt-get update

安装vim

sudo apt-get install vim

安装pip (参考 https://pypi.python.org/pypi/pip/).

sudo apt-get install python-pip python-dev build-essential
pip install --upgrade pip

安装数据库和virtualenv

pip apt-get install mysql-server
pip install virtualenv

开始virtualenv使用

mkvirtualenv /home/mysite --no-site-packages

安装Django

pip install Django==version number

开始项目

mkdir /home/andy
cd /home/andy
source ./bin/activate

django-admin.py startproject andy

安装和配置数据库

mysql -u root -p ***** (database name)

CREATE DATABASE andy;
SHOW DATABASES;
vim andy/andy/settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Using 'mysql' for this tutorial.
        'NAME': 'mysite', # Database name.
        'USER': 'root',
        'PASSWORD': '******',
        'HOST': '', # Empty for localhost.
        'PORT': '', # Empty string for default.
    }
}

还是数据库 (顺利很重要!!!)

sudo apt-get install python-mysqldb
sudo apt-get install libmysqlclient-dev
pip install mysql-python

同步

python manage.py syncdb

开始安装Apache 和 mod_wsgi

sudo apt-get install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1
sudo apt-get install libapache2-mod-wsgi

检查 Apache 安装情况

sudo service apache2 restart

Apache 配置

vim /etc/apache2/sites-available/mysite

安装WSGI有许多方法,以官方的文档为准

vim /home/django_projects/mysite/mysite/wsgi.py
import os
import sys
import site

site.addsitedir('~/.virtualenvs/mysiteenv/local/lib/python2.7/site-packages')

sys.path.append('/home/django_projects/mysite')
sys.path.append('/home/django_projects/mysite/mysite')

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

配置Django静态文件

mkdir /var/www/mysite/static
vim /home/django_projects/mysite/mysite/settings.py

收集静态文件

python manage.py collectstatic --noinput

重启Apache,一切OK

sudo service apache2 restart