Django – 在CentOS 7上部署Django项目
在部署之前,要确保CentOS 7系统已经安装了MySQL 5.x数据库、Python 3.6.x和Nginx。
部署
准备
在CentOS 7的根目录 /
下创建一个project
目录,该目录用于存放所有要部署的项目。在project
下在创建conf
(用户存放所有的配置文件)、 env
(用户存放所有的虚拟环境)、 src
(用于存放所有项目的源码)、 logs
(用于存放所有的日志文件)。
同步数据
使用navicat 将Windows上的数据库同步到CentOS上。首先要确保CentOS上的MySQL可以支持远程连接。
安装虚拟环境
1 | # 切换目录 |
Django的项目中,在工程目录下settings.py文件中有一个DEBUG=True参数,如果DEBUG=False则会出现js,css,img无法加载的情况出现。
原因如下:
Django框架仅在开发模式下提供静态文件服务。当开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供静态文件服务了。
部署在测试环境中
在测试环境中一般都直接使用python manage.py runserver的方式去运行项目。其中就涉及到DEBUG=False的修改,静态目录的修改等,具体修改如下:
1 | 修改settings.py配置文件中的DEBUG=False模式,修改ALLOEWD_HOST=['*'] |
修改项目目录下的urls.py
1 | # 引入包 |
进入项目目录,使用python manage.py runserver
运行项目。
部署在正式环境中
使用 uwsgi + Nginx + MySQL 来部署项目。
配置nginx.conf文件
1 | cd /project/conf |
先编写自己项目的nginx.conf文件如下:
每一个项目对应有一个自己定义的nginx的配置文件,比如爱鲜蜂项目,定义为axf_nginx.conf 文件。
1 | server { |
再修改总的nginx的配置文件,让总的nginx文件包含我们自定义的项目的axf_nginx.conf 文件。
总的nginx配置文件在:/etc/nginx/nginx.conf 中

以上步骤操作完成以后,需要重启nginx:
1 | systemctl restart nginx |
如果自定义的axf_nginx.conf文件没有错误的话,查看nginx的运行状态会有如下的结果:

配置uwsgi文件
先安装uwsgi
1 | pip3 install uwsgi |
然后进行环境变量的配置, 建立软连接
1 | ln -s /usr/local/python3.6/bin/uwsgi /usr/bin/uwsgi |
在 /project/conf 文件夹下除了包含自定义的axf_nginx.conf文件,还有我们自定义的axf_uwsgi.ini 配置文件。
1 | [uwsgi] |
运行项目:
1 | cd /project/conf |