在Centos7如何配置Flask+uwsgi+nginx,及其常见问题

165 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 @TOC

安装python3(有python3直接跳过)

1.安装Python3的依赖包

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

在这里插入图片描述 则表示依赖包安装成功

2.下载Python3的tar包并且安装

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

如果安装失败,则 链接:pan.baidu.com/s/1ppXTkW-J… 提取码:s1pw 将Python-3.7.2.tar.xz放入opt目录下在这里插入图片描述 解压: tar -Jxvf Python-3.7.0.tar.xz 在这里插入图片描述

注意: 当出现下面这样的问题则表示,你是从window下直接脱进去的,这样可能会导致压缩包有缺失 在这里插入图片描述 解决方案: 可以使用vmware共享文件夹,或者xshell文件转换等软件(推荐),也可以多脱动几次(看运气)


**编译和安装:**

./confgure prefix=/usr/local/python3

在这里插入图片描述 编译成功: 在这里插入图片描述

安装:

make && make install 在这里插入图片描述 注意: 如果没有make命令则需要去网上的方法安装一下

3.创建软连接

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

在这里插入图片描述

python3替换成国内源

mkdir ~/.pip
vim ~/.pip/pip.conf

在这里插入图片描述

[global]
timeout = 6000
index-url = https://pypi.mirrors.ustc.edu.cn/simple
trusted-host = pypi.mirrors.ustc.edu.cn

在这里插入图片描述 更新pip3

pip3 install --upgrade pip

在这里插入图片描述

安装Flask及其插件

根据自己项目需求来安装

安装Flask

pip3 install Flask

数据库

sqlite

pip3 install SQLAlchemy

mysql

pip3 install PyMySQL

选择性安装

Flask-Migrate

pip3 install Flask-Migrate

Flask-Script

pip3 install Flask-Script

Flask-WTF

pip3 install Flask-WTF

导入自己的项目

我在根目录下创建了test文件,并导入了自己的项目 在这里插入图片描述

将项目中的缓存文件(pycache)和.idea 删除。并且修改host=‘0.0.0.0’ 。端口号改成自己想要的端口 解压:

unzip Python_Flask.zip 在这里插入图片描述 在这里插入图片描述

安装uwsgi并配置

安装

pip3 install uwsgi

在这里插入图片描述

创建软连接

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

配置uwsgi

  1. 在opt目录下创建 scripts目录 在这里插入图片描述

  2. 在scripts目录下创建uwsgi.ini 配置文件 在这里插入图片描述 该文档插入以下代码 在这里插入图片描述

[uwsgi]

socket=127.0.0.1:2020
pythonpath=/test/Python_Flask
module=manage
wsgi-file=/test/Python_Flask/manage.py
callable=app
processes=4
threading=2
daemonize=/opt/scripts/uwsgi.log

详细讲解

socket

在这里插入图片描述 socket表示url 我的url就是127.0.0.1:2020

pythonpath

在这里插入图片描述

pythonpath表示项目的路径 我的则在/test/Pytho_Flask

module

module表示运行模块 我的运行模块为manage.py 在这里插入图片描述

安装Nginx

编译和安装

我的nginx已经放在opt目录下了 在这里插入图片描述

解压:

tar -xvf nginx-1.12.2.tar.gz

编译:

./configure

安装:

make && make install

在这里插入图片描述

创造软连接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

测试nginx是否可以运行

nginx #开启服务
nginx -s stop #关闭服务

在这里插入图片描述

nginx配置

找到nginx.conf 在这里插入图片描述 在这里插入图片描述 备份nginx.conf

cp nginx.conf nginx.conf.bak

修改配置文件 在这里插入图片描述

location / {
        include uwsgi_params;
		uwsgi_pass 127.0.0.1:2020;
		uwsgi_param UWSGI_CHDIR /test/Python_Flask;
		uwsgi_param UWSGI_SCRIPT manage:app;
 }

详细介绍

  1. include uwsgi_params; 导入uwsgi
  2. uwsgi_pass 和uwsgi.ini里的socket必须保持一致,意义一样
  3. uwsgi_param UWSGI_CHDIR uwsgi.ini中pythonpath意义一样,所以需要保持一致
  4. uwsgi_param UWSGI_SCRIPT 表示运行文件和module类似
  5. listen nginx的端口号
  6. server_name 表示服务器名称

运行

先启动 uwsgin

进入到scripts下

uwsgi --ini uwsgi.ini

在这里插入图片描述

在启动 nginx

nginx

在这里插入图片描述

访问:ip地址 即可。

在这里插入图片描述