当前位置:Gxlcms > 数据库问题 > CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇

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

时间:2021-07-01 10:21:17 帮助过:55人阅读

  • CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境
    • Python环境搭建
      • Python2 3共存
        • 安装Python3
        • Python 2 3共存
    • MySQL环境搭建
    • uwsgi安装配置
      • uwsgi 安装
      • uwsgi 设置
    • Nginx安装配置
      • Ngxin安装
      • 配置Nginx文件

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

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

标签:ica   admin   启动文件   wget   install   python 2   configure   并且   UNC   

人气教程排行