Django项目部署

  1. 云栖社区>
  2. 博客>
  3. 正文

Django项目部署

技术小胖子 2017-11-11 20:16:00 浏览573
展开阅读全文

将Django项目部署在LAMP/LNMP平台上,用于真正的生产环境,需要注意一下两点:

  1. 数据库编码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
1. 数据库创建
CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
2. 数据库设置 /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
character-set-server= utf8
default-character-set= utf8
init_connect='SET NAMES utf8'
[mysql]
default-character-set=utf8
# mysql 查看数据库信息如下
mysql > use test
mysql > status
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
3. 项目设置 djangoproject/setting.py设置如下
TIME_ZONE = 'Asia/Shanghai'
LANGUAGE_CODE = 'zh-cn'
DEFAULT_CHARSET = 'utf-8'
TEST_CHARSET = 'utf-8'
TEST_COLLATION = 'utf-8'
DATABASES = {
    'default': {
        'ENGINE''django.db.backends.mysql',
        'NAME''test2',
        'USER''root',
        'PASSWORD''',
        'HOST''172.16.20.64',
        'PORT''3306',
        'TEST_CHARSET''utf-8',
        'TEST_COLLATION''utf-8',
        'DEFAULT_CHARSET''utf-8',
    }
}

2. UWSGI反代

项目中使用到了Django,MySQLdb,当然还有apache反代django时需要的uWSGI

还有两个依赖库 python-devel以及mysql-devel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
1. 安装依赖库
yum -y install python-devel mysql-devel
 
2. 安装apache uWSGI模块(如果使用nginx这步可以省略)
wget --no-check-certificate # 编译uWSGI.c文件
/apache安装目录/bin/apxs -i -c mod_uwsgi.c 
 
3. 配置httpd.conf
# 这些东西加在那里浏览一遍conf文件你就知道 :)
LoadModule uwsgi_module modules/mod_uwsgi.so 
 
<Location "/">
        SetHandler uwsgi-handler
        uWSGISocket 127.0.0.1:8080  # 这是指定反代地址
</Location>
 
<Location "/static">
        SetHandler none  # 这是定义django静态文件处理方式
</Location>
# 静态文件alias
Alias /static /data01/httpd/htdocs/thirddjango/static 
 
4. 在htdocs目录下设置UWSGI.INI
[uwsgi]
chdir = /data01/httpd/htdocs/thirddjango   # httpd的发布目录
module = thirddjango.wsgi   # django项目中的wsgi
env DJANGO_SETTINGS_MODULE=thirddjango.settings  # 项目settings文件
 
master = true
processes = 2
socket = 127.0.0.1:8080   # uwsgi工作端口
max-requests = 100
vacuum = true
daemonize = /data01/httpd/logs/django.log  # django日志文件位置
 
5. 安装Django,MySQLdb模块
# 安装easy_install工具,便于安装以上的模块
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
python ez_setup.py install
 
easy_install django
easy_install "MySQL-python==1.2.3"




     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1532434,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注