美文网首页
CentOS8+uwsgi+Nginx+MySQL+Django

CentOS8+uwsgi+Nginx+MySQL+Django

作者: 熊一二 | 来源:发表于2020-06-09 17:58 被阅读0次

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!

    @TOC

    系统: centos_8 + Python 3.6.8 + nginx-1.13.7 + uWSGI 2.0.17.1 + Django2.2.0

    # 检查当前系统版本
    cat /proc/version
    
    Linux version 4.18.0-147.5.1.el8_1.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.
    3.1 20190507 (Red Hat 8.3.1-4) (GCC)) #1 SMP Wed Feb 5 02:00:39 UTC 2020
    
    # 检查当前系统Python版本
    python3 --version
    > Python 3.6.8
    
    python
    -bash: python: command not found
    
    # 说明安装了Python3 未安装Python2;
    

    apt-get: command not found,这个的出现是因为系统的原因。
    Linux系统分为两种:
    1、RedHat系列:Redhat、Centos、Fedora等
    2、Debian系列:Debian、Ubuntu等
    RedHat系列的包管理工具是yum
    Debian系列的包管理工具是apt-get
    由上可以看出我的系统是Red hat 所以使用的包管理工具是yum。

    常见的Python HTTP服务器

    Name Version http1.1 Flavour Repo Community
    uWSGI Trunk(253) Yes processor/thread repo Mailing List
    Gunicorn 0.6.4 No processor/thread GIT #gunicorn
    wsgiref Py 2.6.4 No processor/thread SVN Mailing List
    Twisted 10.0.0 Yes processor/thread SVN Community
    Tornado 0.9.6 Yes lightweight threads Mercurial Mailinglist
    在这里插入图片描述

    安装部署记录

    1、创建非管理员账户

    #由于安全需求,还是配置一个非管理员(自己操作,增加sudo授权)账户操作,通过命令创建用户名密码
    adduser jojo  # 新增用户
    passwd jojo  # 为jojo设置密码
    
    #设置好之后,还需要开启sudo权限,通过命令:
    vi /etc/sudoers
    
    #然后找到有 root ALL=(ALL)那一行,然后在下面增加一行:
    quinns ALL=(ALL)  ALL
    
    #保存即可。
    

    下面的操作,用新用户jojo登录来操作。

    2、安装依赖

    uwsgi和nginx以及anaconda的安装会存在一些报错问题,这里为了避免出现这情况,所以先安装好依赖。

    sudo yum install gcc-c++
    
    sudo yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
    
    sudo yum install uwsgi-plugin-python
    #> Last metadata expiration check: 0:28:54 ago on Tue 09 Jun 2020 10:31:09 AM CST.
    No match for argument: uwsgi-plugin-python
    Error: Unable to find a match: uwsgi-plugin-python
    #可以使用
    yum search vim uwsgi-plugin-python
    #查找或安装相应版本,再次yum install一下。
    #试了不行,末尾加了36也不行。
    # 最后试了sudo pip3 install uwsgi完成了安装
    
    sudo yum install libxml*
    #Error: 
     Problem 1: conflicting requests
      - nothing provides glibmm24-devel needed by libxml++-devel-2.40.1-10.el8.x86_64
      - nothing provides pkgconfig(glibmm-2.4) >= 2.32.0 needed by libxml++-devel-2.40.1-10.el8.x86_64
     Problem 2: conflicting requests
      - nothing provides glibmm24-doc needed by libxml++-doc-2.40.1-10.el8.noarch
    (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
    
    
    sudo yum install -y bzip2
    
    sudo yum -y install pcre-devel
    
    sudo yum install python-devel
    #Last metadata expiration check: 0:40:26 ago on Tue 09 Jun 2020 03:54:32 PM CST.
    No match for argument: python-devel
    Error: Unable to find a match: python-devel
    
    sudo yum install build-essential python-dev
    #Last metadata expiration check: 0:00:07 ago on Tue 09 Jun 2020 04:35:44 PM CST.
    No match for argument: build-essential
    No match for argument: python-dev
    Error: Unable to find a match: build-essential python-dev
    
    

    3、安装软件

    通过jojo账户登录,然后到jojo用户目录(/home/jojo)下新建一个utils目录mkdir utils,把一些软件下载在utils目录下。

    3.1安装anaconda

    Anaconda是什么❓

    Anaconda 是一个可用于科学计算的 Python 发行版,支持 Linux、Mac、Windows系统,内置了常用的科学计算包。
    Anaconda 解决了官方 Python 的两大痛点。
    第一:提供了包管理功能,Windows 平台安装第三方包经常失败的场景得以解决.
    第二:提供环境管理的功能,功能类似 Virtualenv,解决了多版本Python并存、切换的问题。
    Anaconda入门安装教程

    安装Anaconda

    #1、通过wget方式下载anaconda(官网)
    wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
    
        ~~#如果想更快,就安装国内源(清华镜像):
        wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.1.0-Linux-x86_64.sh~~ 
    
    #2、下载好之后sh安装
    sh Anaconda3-5.0.1-Linux-x86_64.sh
    #一路默认,到之后面安装完的时候会提示是否添加环境变量,输入yes即可。
    
        #如果想要后面使用更快,可以更改仓库镜像:
        conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
        conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
        conda config --set show_channel_urls yes
        #这样的话安装软件都是国内源,速度比较快
    

    wget是什么❓

    wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器。
    Linux wget 命令详解

    3.2验证是anaconda否成功安装
    #通过命令:
    conda list
    #来验证是否成功安装并加入环境变量,如果出现list列表则代表成功,如果出现报错提示信息则需要用命令:
    source ~/.bashrc
    #来添加,然后重复conda list命令。
    「到这步我的已经OK了~」
    
    #如果还是不行,则编辑/etc/profile文件,在底部添加环境变量及指向:
    export PATH=/home/quinns/anaconda3/bin:$PATH
    #通过文件添加的环境变量需重启服务器才能生效
    

    3.3安装uwsgi

    #在确认安装好anaconda之后,先不着急新建虚拟环境,直接在linux下输入python,检查默认python是否已自动替换为python3.6。
    # 接着通过pip安装uwsgi:
    pip install uwsgi
    pip3 install uwsgi  # 这里我用的pip3
    
    #待有安装成功的提示出来,再通过命令:
    uwsgi --version
    #来确认是否成功安装。
    「验证成功安装了」
    

    特别注意WSGI/uwsgi/uWSGI这三个概念的区别

    WSGI我们已经清楚是一种通信协议
    uwsgi同WSGI一样是一种通信协议
    而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器

    为什么有了uWSGI还需要Nginx❓

    因为Nginx具备优秀的静态内容处理能力,然后将动态内容转发给uWSGI服务器,这样可以达到很好的客户端响应。


    在这里插入图片描述

    3.4创建虚拟环境

    # 通过anaconda来创建python虚拟环境:
    conda create --name envname python=3.6.3
    (亲身经历 3.6.5无法启动uwsgi,最好还是3.6.3)
    观察过程,无报错即完成安装。
    
    「我的实践过程」
    conda create --name envdf python=3.6.8
    -->  Package plan for installation in environment /home/jojo/anaconda3/envs/envdf
    #创建过程中输入y,无报错安装成功。
    

    3.5安装nginx

    # 直接通过yum来安装nginx即可,如果想安装新版,可以在网上寻找新方法。
    sudo yum install nginx
    「 安装成功,无报错 」
    
    # 安装完成后应该是自动启动服务,在浏览器输入ip即可访问nginx的欢迎页面。
    「 输入IP后没有显示Nginx欢迎页面」
    
    # 如果没有,通过命令:
    sudo service nginx start/restart
    # 来启动或者重启nginx服务。
    「 使用此方法后显示了Nginx欢迎页面」
    

    3.6 安装MySQL

    「 我已有云数据库RDS MySQL,故此处我无需安装 」

    相关文章

      网友评论

          本文标题:CentOS8+uwsgi+Nginx+MySQL+Django

          本文链接:https://www.haomeiwen.com/subject/tljetktx.html