zoukankan      html  css  js  c++  java
  • CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇

    CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境

    Python环境搭建

    Python2 3共存

    python -V 查看Python版本

    安装Python3

    下载安装相关包

    yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

    备份

    cd /usr/bin
    mv python python.bak

    安装

    wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz

    解压

    tar -xvJf Python-3.6.3.tar.xz

    切换进入

    cd Python-3.6.3

    编译安装

    ./configure prefix=/usr/local/python3
    make && make install

    Python 2 3共存

    添加Python3软链

    rm /usr/bin/python
    ln -s /usr/local/python3/bin/python3 /usr/bin/python
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

    升级pip3到最新版本

    pip3 install –upgrade pip

    这时候在执行命令python -v和python2 -V,应该就能看到python3和python2的版本了。
    因为执行yum需要python2版本,所以我们还要修改yum的配置,执行:

    vi /usr/bin/yum
    把#! /usr/bin/python修改为#! /usr/bin/python2
    vi /usr/libexec/urlgrabber-ext-down
    文件里面的#! /usr/bin/python 也要修改为#! /usr/bin/python2

    MySQL环境搭建

    下载MySQL源安装包, 还是用57吧

    wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

    安装MySQL源

    yum localinstall mysql57-community-release-el7-8.noarch.rpm
    yum install mysql-devel

    安装MySQL

    yum install mysql-community-server

    进入MySQL目录

    cd /usr/bin

    启动MySQL

    systemctl start mysqld

    查看MySQL状态

    systemctl status mysqld

    设置MySQL开机启动

    systemctl enable mysqld

    修改root本地登录密码(密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位)

    grep ‘temporary password’ /var/log/mysqld.log
    mysql -uroot -p
    set password for ‘root’@’localhost’=password(‘!2Qw32sd’);

    uwsgi安装配置

    uwsgi 安装

    使用pip3安装

    pip3 install uwsgi

    创建uwsgi软链接

    ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3

    测试uwsgi是否可用

    1. 建立测试脚本test.py
    def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello uwsgi!"]
    1. 运行脚本

    uwsgi –http :8000 –wsgi-file test.py
    浏览器输入IP:端口: 如果可以看到 ‘hello uwsgi’, 配置完成

    uwsgi 设置

    进入项目目录

    cd /var/www/myproject

    创建编辑 uwsgi 配置文件(文件名自起)
    vim uwsgiset.xml

    内容如下

    <uwsgi>
    <socket>127.0.0.1:8997</socket><!-- 内部端口,自定义 -->
    <chdir>/var/www/myproject</chdir><!-- 项目目录 -->
    <module>myproject.wsgi</module><!-- wsgi 启动文件 -->
    <processes>4</processes> <!-- 进程数 -->
    <daemonize>uwsgi.log</daemonize><!-- 日志文件路径 -->
    <pidfile>uwsgi.pid</pidfile><!-- uwsgi 管理文件路径,用来重启 uwsgi -->
    </uwsgi>

    在项目目录( /var/www/myproject )下启动:

    uwsgi3 -x uwsgiset.xml

    提醒 [uWSGI] parsing config file myproject.xml 则启用成功
    注意仅仅是启用成功

    Nginx安装配置

    Ngxin安装

    直接下载.tar.gz安装包,地址:https://nginx.org/en/download.html
    推荐选择稳定版下载 : 当前版本 1.12.2

    wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

    解压

    tar -zxvf nginx-1.12.2.tar.gz

    编译前初始化配置

    cd nginx-1.12.2 # 进入nginx目录
    ./configure # 使用默认配置

    编译安装

    make
    make install

    查找安装路径

    [root@Ryoma nginx-1.12.2]#whereis nginx
    nginx: /usr/local/nginx

    启动、停止 nginx

    cd /usr/local/nginx/sbin/ # 进入 nginx sbin 目录
    ./nginx # 启动 nginx
    ./nginx -s quit # 此方式停止步骤是待 nginx 进程处理任务完毕进行停止
    ./nginx -s stop # 此方式相当于先查出 nginx 进程id再使用kill命令强制杀掉进程
    ./nginx -s reload # 重新加载

    查询 nginx 进程:

    ps aux|grep nginx

    配置Nginx文件

    cd /usr/local/nginx/conf/
    vim nginx.conf

    server {
    listen 80;
    server_name 127.0.0.1;
    index index.py index.html;
    # 项目根目录
    root /home/myapp/sjk-qasystem/admin-api/QAadmin/qaproject;
    #charset koi8-r;
     
    #access_log logs/host.access.log main;
     
    location / {
    include uwsgi_params;
    # 这里的端口号要和uwsgi配置文件里相同
    uwsgi_pass 127.0.0.1:8997;
    }

    保存nginx.conf执行

    nginx -t 命令检查配置文件是否有错
    ./nginx -s reload 重启Nginx

  • 相关阅读:
    从SAPI 5.1中提取中文发音引擎
    多图:你没见过的古董级PC(zz)
    难搞的证书
    原来VS.Net 2005正式版真的发布了
    Google要改进OpenOffice 并公布其搜索计算数据中心细节(zz)
    AMD CPU市占率突破20%!(zz)
    重定向页面会Alert()不了?
    忍无可忍,希望大家不要来苏州园区工作
    MSN登陆不了怎么办
    网易126免费域名去广告
  • 原文地址:https://www.cnblogs.com/dreamyu/p/10066150.html
Copyright © 2011-2022 走看看