目录:
一、在linux系统安装python3.7环境
二、在linux系统导入项目
三、uwsgi安装部署
四、nginx安装部署
五、uwsgi+nginx启动项目
一、python3.7环境安装
CentOS7默认携带python2.7版本,但是现在大部分使用python3.7版本,所以要在服务器上搭建python2和python3共存环境。
1. 安装依赖包
yum install zlib-devel libffi-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc* make -y
2. 下载python3安装包
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
注意:如果是在window系统下载好想要传到linux系统,可以在命令行使用rz命令,将安装包放在opt目录下(不要拖动,可能会造成文件缺失)。
出错提醒:在虚拟机环境下使用rz命令,出现乱码并卡死

解决:使用xshell工具连接并使用该命令


3. 解压、编译和安装
(1)解压:tar -xvjf Python-3.7.0.tar.xz
(2)编译:
- 进入解压后的python3.7目录下:
cd Python-3.7.0/
截图 - 将python3.7环境安装到
usr/local下。名称叫python3
./configure prefix=/usr/local/python3
(3)安装:make && make install
4. 创建软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
5. 运行python3.7环境
python3

二、在linux下运行项目
1. 安装flask项目运行的模块
(1)windows下导出flask项目下载安装的模块
pip freeze > package_flask.txt(文件名自己命名)

(2)linux环境下安装模块
pip3 install -r package_flask.txt

2. 将项目导入到linux
(1)删除没有用的文件,如.idea、pycache
(2)修改端口号和主机,debug改为false

(3)将项目压缩,导入到linux
(4)解压:
unzip flask_OAsystem.zip(5)启动项目:
python3 main.py run
(6)Windows下访问测试

注意:关闭linux系统的防火墙:
- 查看防火墙的状态:
systemctl status firewalld - 关闭防火墙:
systemctl stop firewalld - 开启防火墙:
systemctl start firewalld - 关闭开机启动:
systemctl disable firewalld - 启用开机启动:
systemctl enable firewalld
三、安装uwsgi模块
网站通常要运行在web服务器上,来接受浏览器的访问。python有自己的轻量级web服务器,就像上面测试一样,可以进行访问。但是这个服务器只适合在本地开发的时候使用,但是线上运行时要保证更高的性能和稳定性,所以需要使用uwsgi部署。
简单了解:uWSGI是一个web服务器,它实现了WSGI协议、uwsgi、http等协议。uwsgi协议是一个uWSGI服务器自有的协议,用于定义传输信息的类型。WSGI(Web Server Gateway Interface),是为python语言定义的Web服务器和Web应用程序框架之间的一种简单而通用的接口。是一个网关,在协议之间进行转换。
摘自-摩力克《uWSGI详解》
1. 下载uwsgi 模块替换自带的服务模块
pip3 install uwsgi
2. 创建软连接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
四、Nginx
前面已经用uwsgi服务器了来部署了,为什么还要再使用nginx呢?
- 安全:不管什么请求都要经过代理服务器,这样就避免了外部程序直接攻击web服务器
- 负载均衡:根据请求情况和服务器负载情况,将请求分配给不同的web服务器,保证服务器性能。
- 提高web服务器的IO性能:nginx具备优秀的静态内容处理能力,然后将动态内容转发给uWSGI服务器,可以达到很好的客户端响应。
1. 下载nginx压缩包
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
2. 解压、编译和安装
(1)解压:tar -zxvf nginx-1.12.2
(2)编译:./cnfigure
(3)安装:make && make install
3. 创建软连接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
4. 启动:
nginx:回车后没有任何反应,去windows下访问测试
5. 访问测试

6. 停止nginx:
nginx -s stop
五、uwsgi+nginx启动项目
1. 创建uwsgi.ini配置文件
在opt目录下创建scripts目录:mkdir scripts
在scripts目录下创建uwsgi.ini文件: vim uwsgi.ini
[uwsgi]
socket=127.0.0.1:5000
pythonpath=/opt/final_lt_03
module=main
wsgi-file=/opt/final_lt_03/main.py
callable=app
processes=4
threading=2
daemonize=/opt/scripts/uwsgi.log
注意:pythonpath写的自己的项目名称
2. 变量nginx配置文件
(1)cd /usr/local/nginx/conf进入到nginx配置文件的目录
(2)修改配置文件。注意先对nginx.conf进行备份:cp nginx.conf nginx.conf.bak

3. 启动
(1)启动uwsgi
cd /opt/script/
uwsgi --ini uwsgi.ini

(2)启动nginx
nginx
4. 访问测试
直接在windows系统的浏览器地址栏输入linux系统的IP地址。不带端口号,可以直接访问到项目。
--------------------成功-------------------------------
如有不妥,欢迎指正

