·环境
·O S: Ubuntu17.04
·Apache: Apache 2.4
·Python: Python 3.5.3
·Django: Django 1.11
·数据库: Mysql-5.7
·步骤
·第一步: 安装Apache
$ sudo apt-get install apache2 --#安装Apache
·第二步: 安装Python3.5.3
$ sudo apt-get install python3.5 --#安装Python
·第三步: 安装pip
$ sudo apt-get install python3-pip --#安装pip
·第四步: 设置 python 和 pip 的默认版本
$ rm -rf /usr/bin/python --删除python2.7的软链接
$ ln -s /usr/bin/python3.5 /usr/bin/python --创建python3.5的软链接
$ ln -s /usr/bin/pip3 /usr/bin/pip --创建pip3的软链接
·第五步: 安装数据库
$ sudo apt-get install mysql-server --安装 数据库 服务端
$ sudo apt-get isntall mysql-client --安装 数据库 客户端
$ sudo apt-get install libmysqlclient-dev --安装 数据库 客户端库
·第六步: 安装Django
$ sudo pip install Django==1.11 --安装 Django
$ sudo pip install Pillow --安装 django 的图片模块
$ sudo pip install pymysql --安装 python 的mysql模块
$ sudo pip install mysqlclient --安装 django 的mysql客户端模块
$ sudo apt-get install libapache2-mod-wsgi-py3 --安装 Python3 连接 apache 的模块
·第七步: 开始部署 Django
1. 将Django工程放在/var/www/下
2. $ sudo vim/etc/apache2/sites-available/项目名称.conf 修改配置文件;--参考附件1
3. $ sudo a2ensite 项目名称.conf 配置文件生效
4. $ sudo vim /var/www/项目名称/项目名称/wsgi.py --参考附件2
5. $ sudo vim /var/www/项目名称/项目名称/settings.py
--修改 “ ALLOWED_HOSTS = [] ” 为 “ ALLOWED_HOSTS = [“*”] ”
--在最后添加一行 “ MEDIA_ROOT = '/var/www/项目名称' ”
·第八步: 修改 Mysql 编码
1. $ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
-- 在 lc-messages-dir= /usr/share/mysql 语句后添加 character-set-server=utf8 语句
2. $ sudo vim /etc/mysql/conf.d/mysql.cnf
--添加 default-character-set=utf8 语句
·第九步: 修改 项目 文件权限
1. $ sudo chown -R www-data:www-data /var/www/项目文件--"www-data"为 apache 的用户组
2. $ sudo chmod -R g+w /var/www/项目文件
3. $ sudo vim /usr/local/apache/bin/envvars
--修改 "export LANG=" 为 export LANG="en_US.UTF-8" --设置 apache 的中文编码
--最后一行添加 umask 0002--设置 apache 上传文件时候的默认权限
·第十步: 修改 连接 数据库
1. $ sudo vim /var/www/项目名称/项目名称/settings.py --修改 "DATABASES{}" 如下
--DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库的 库名称(一般与项目名称一致)',
'USER': '登陆数据库的 用户名称',
'PASSWORD': '登陆数据库的 密码',
'HOST': '数据库的IP',
}
}
2. $ mysql -u 数据库的 用户名称 -h 数据库的IP -p 登陆数据库的密码
3. mysql> create database 数据库的 库名称 --登陆成功后 创建 数据库
4. $ cd /var/www/项目名称 --进入项目文件夹
5. $ python manage.py makemigrations
6. $ python manage.py migrate --5 和 6 是 同步 “models.py” 的数据表
7. 完成部署
·附件1:项目名称.conf
<VirtualHost *:80>
ServerName www.yourdomain.com
#ServerAlias otherdomain.com
#ServerAdmin youremail@gmail.com
# 存放用户上传图片等文件的位置,注意去掉#号
#Alias /media/ /var/www/项目名称/media/
# 静态文件(js/css/images)的存放位置
Alias /static/ /var/www/项目名称/APP名称/static/
# 允许通过网络获取static的内容
<Directory /var/www/项目名称/static/>
Require all granted
</Directory>
# 最重要的!通过wsgi.py让Apache识别这是一个Django工程,别漏掉前边的 /
WSGIScriptAlias / /var/www/项目名称/项目名称/wsgi.py
# wsgi.py文件的父级目录,第一个ProjectName为Django工程目录,第二个ProjectName为Django自建的与工程同名的目录
<Directory /var/www/项目名称/项目名称/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
import os
from os.path import join,dirname,abspath
PROJECT_DIR = dirname(dirname(abspath(__file__)))
import sys
sys.path.insert(0,PROJECT_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "项目名称.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()