华为云服务器(CentOS 7.5)Django项目上线部署(Nginx+uWSGI+Django)

华为云服务器(CentOS 7.5)Django项目上线部署(Nginx+uWSGI+Django)

《玩转Django 2.0》书中的项目“我的音乐”做好了,然后去服务器部署项目。这个过程中遇到过很多问题,2018年的双十一周末都花在这上面了。网上看过很多教程,走过很多弯路,心累!还好网站已经搭建出来了: www.mymusic.net.cn
霓虹闪烁,但人们真正需要的,只是一个可以照亮前路的烛光!


部署前,首先了解下项目流程和每个组件的用途,很重要哦!

项目流程:
1、首先客户端(如浏览器)请求服务资源。
2、nginx作为直接对外的服务接口,接收到客户端发过来的http请求,会解包、分析。
3、如果是静态文件请求,就根据nginx配置的静态文件目录,返回请求的资源。
4、如果是动态的请求,nginx就通过配置文件,将请求传递给uWSGI;uWSGI将接收到的包进行处理,并转发给wsgi。
5、wsgi根据请求调用django工程的某个文件或者函数,处理完后django将返回值交给wsgi。
6、wsgi将返回值进行打包,转发给uWSGI。
7、uWSGI接收后转发给nginx,nginx最终将返回值返回给客户端(如浏览器)。
注:不同的组件之间传递信息涉及到数据格式和协议的转换。

用途:
1、第一级的nginx并不是必须的,uWSGI完全可以完成整个的和浏览器交互的流程。
2、在nginx上加上安全性和其他限制,可以达到保护程序的作用。
3、uWSGI本身是内网接口,开启多个work和processes可能也不够用,而nginx可以代理多台uWSGI完成uWSGI的负载均衡。
4、django在debug=False下对静态文件的处理能力不是很好,而用nginx来处理更加高效。


1、安装Python 3

CentOS 7 系统默认安装Python 2.7,但Django 2.0以上的版本不支持Python 2.7版本,因此需要我们在CentOS 7 系统中安装Python 3版本。Python 3.7安装过程中执行make install 命令后,结尾会有错误,显示pip、setuptools会安装失败,自己再去安装这些工具有点麻烦,所以用Python 3.6。
在安装Python 3.6之前,我们需要分别安装Linux的wget工具、GCC编译器环境以及Python 3 使用的依赖组件。

1.1、相关的安装指令如下

 1. 安装Liunx的wget工具,用于网上下载文件
 	yum -y install wget
 2. GCC编译器环境,安装Python 3 时所需的编译环境
 	yum -y install gcc
 3. Python 3 使用的依赖组件
 	yum install openssl-devel  bzip2-level  expat-devel   gdbm-devel  readline-devel  sqlite*-devel mysql-devel
 4.安装编译环境(非必需,为了减少后续安装错误)
	yum groupinstall 'Development Tools'
5. 安装libffi-devel依赖包,解决python3.7以上版本提示'ModuleNotFoundError: No module named '_ctypes''
	yum install libffi-devel -y

1.2、Python 3.6.3 安装

 1. 安装包下载:wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
 2. 解压安装包:tar -zxvf  Python-3.6.3.tgz,生成Python-3.6.3文件夹
 3. 进入Python-3.6.3文件夹:cd Python-3.6.3
 4. 将Python-3.6.3 编译到CentOS 7中:
    # 依次输入编译命令,指定位置安装python3.6.3
 	./configure --prefix=/usr/local/python3
 	make
 	make install

1.3、Python 3.6.3 建立软连接并加入PATH环境变量中

这一步很坑,Linux基础不熟,浪费了自己很多时间。切记小心!

# 查看/usr/bin中所有python文件的详细信息
ls -l /usr/bin/python*


由上图可知,系统中默认的python版本是2.7,为了不影响yum插件,因为yum插件(python写的工具)使用的是python2.7。所以对于系统默认的python版本,我们不做变动。

1、建立新的软连接python3和pip3

# python 3.6 和 python3建立软连接
ln -sf  /usr/local/python3/bin/python3.6 /usr/bin/python3
# pip3.6 和 pip3 建立软连接
ln -sf /usr/local/python3/bin/pip3.6 /usr/bin/pip3
# 升级pip3到最新版
pip3 install --upgrade pip

在这里插入图片描述
由上图所示,建立连接后,系统中就有两个版本的python了。安装模块时,切记需要弄清楚安装在哪个环境。如果是2.7版本,就用pip/pip2;如果是3.6版本,就用pip3。
在这里插入图片描述
通过指令:python,可以进入旧版2.7的交互环境;通过指令:python3,可以进入新版3.6的交互环境。

2、新版python3加入环境变量PATH中

vi /etc/profile     //编辑profile文件
#  在profile文件底部加入该行,即python安装目录的bin目录
export PATH=$PATH:/usr/local/python3/bin
source /etc/profile     //让修改立即生效

加入环境变量中的作用在于,执行python程序的时候,就会使用该版本的python环境。


2、安装mysql 8.0.13

2.1、下载MySQL二进制文件

地址:https://dev.mysql.com/downloads/file/?id=480751
下载后将mysql-8.0.13-linux-glibc2.12-x86_64.tar文件,通过xftp工具上传到阿里云服务器上,路径为:/usr/local/software。路径自选,随意。

2.2、 安装mysql,初始表

1、安装前检测系统是否自带安装了mysql

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值