ubuntu18.04安装部署python3、nginx、Flask项目

举报
青年码农 发表于 2022/08/26 00:52:03 2022/08/26
【摘要】 昨天服务器开了一个新管理员账号,用的弱口令,导致被黑了,ssh也不能登录,没办法,只能重装系统,还好没重要资料,服务器上只跑了一个公交的api和博客,早上重装了系统,环境从新搭建,记录下。 服务器是腾讯云的,系统是ubuntu18.04,自带python2和python3,我的项目是基于python3的,所以可以直接使用。 1...

昨天服务器开了一个新管理员账号,用的弱口令,导致被黑了,ssh也不能登录,没办法,只能重装系统,还好没重要资料,服务器上只跑了一个公交的api和博客,早上重装了系统,环境从新搭建,记录下。

服务器是腾讯云的,系统是ubuntu18.04,自带python2和python3,我的项目是基于python3的,所以可以直接使用。

1.安装依赖包


   
  1. sudo apt install python3-pip
  2. sudo apt install build-essential python-dev python-setuptools
  3. sudo apt install build-essential python3-dev  python3-setuptools

2.安装virtualenv

Virtualenv用来建立一个虚拟的python环境,可以为每个Python应用创建独立的开发环境,使他们互不影响,Virtualenv 能够做到:

  • 在没有权限的情况下安装新套件

  • 不同应用可以使用不同的套件版本

  • 套件升级不影响其他应用

pip3 install virtualenv
  

查看是否安装成功

virtualenv --version
  

5d8258457b6f06a8888dd7547dfc6c1d.png

安装成功,接下来就要使用它了,我的项目是个api服务,我把我的项目文件放在/opt下,文件名为busAPI,我把我的项目文件都放在里面

97bcca7f8d2dc39653ef36aeb719ca97.png

安装虚拟环境,名字叫venv,必须进入到项目目录里,

virtualenv venv
  

在项目目录下就会建立一个新的 venv 目录,里面就是运行python 的基本环境的工具与指令和包。然后启用该环境。

source venv/bin/activate
  

调用 activate 指令后命令符前就会出现 (venv) 字样。可通过 deactivate 退出虚拟环境。

3.安装项目的依赖(Flask框架)

我的项目文件已经上传到目录里,但是项目依赖还没有安装,安装依赖,我的依赖文件

已经放到requirements.txt文件里,

pip install -r requirements.txt
  

这样安装依赖文件比较方便,如果依赖少,可以一个一个安装。

4.安装并配置uWSGI

此时我们已经在虚拟环境中,直接安装uWSGI

pip install uwsgi
  

在项目根目录新建config.ini文件

vim config.ini
  

文件内容


   
  1. [uwsgi]
  2. # uwsgi 启动时所使用的地址与端口
  3. socket = 127.0.0.1:8001
  4. # 指向网站目录
  5. chdir = /opt/busAPI/
  6. # python 启动程序文件
  7. wsgi-file = run.py
  8. # python 程序内用以启动的 application 变量名
  9. callable = app
  10. # 处理器数
  11. processes = 4
  12. # 线程数
  13. threads = 2
  14. #状态检测地址
  15. stats = 127.0.0.1:9191

注释已经很明显,只解释下callable=app 这个 app 是 run.py 程序文件内的一个变量,这个变量的类型是 Flask的 application 类 。

38fc41e95db762001b05286a47f5bc61.png

可以运行测试下

uwsgi config.ini
  

但这只是命令启动形式,要使其随同服务器启动并作为后台服务运行才是运营环境的实际所需要。因此接下来我们需要安装另一个工具来引导 uwsgi 。

5.安装 Supervisor

sudo apt-get install supervisor
  

Supervisor 的全局的配置文件位置在:

/etc/supervisor/supervisor.conf
  

正常情况下我们并不需要去对其作出任何的改动,只需要添加一个新的 *.conf 文件放在/etc/supervisor/conf.d/下就可以,那么我们就新建立一个用于启动 busAPI 项目的 uwsgi 的 supervisor 配置 (命名为:busAPI.conf):


   
  1. [program:busAPI]
  2. # 启动命令入口
  3. command=/opt/busAPI/venv/bin/uwsgi /opt/busAPI/config.ini
  4. # 命令程序所在目录
  5. directory=/opt/busAPI
  6. #运行命令的用户名
  7. user=root
  8.    
  9. autostart=true
  10. autorestart=true
  11. #日志地址
  12. stdout_logfile=/var/log/uwsgi_supervisor.log

启动和终止服务


   
  1. # 启动服务
  2. sudo service supervisor star
  3. # 终止服务
  4. sudo service supervisor stop
  5. # 查看状态
  6. sudo service supervisor status

6.安装 Nginx

sudo apt-get install nginx
  

配置Nginx,我们修改default这个文件

/etc/nginx/sites-available/default
  

b2f19d7493c41952ee374c54a0029990.png

默认是80端口,这里我没有使用80,因为小程序必须要https,所以我配了443端口,重启下Nginx

sudo service nginx restart
  

Nginx服务命令


   
  1. # 启动
  2. sudo service nginx start
  3. # 停止
  4. sudo service nginx stop
  5. # 重启
  6. sudo service nginx restart
  7. # 查看状态
  8. sudo service nginx status

7.总结

记录下从无到有的过程,中间也遇到不少的坑,但是最终还是运行成功。总结下,方便日后查找。

文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/NMGWAP/article/details/125067074

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。