Flask项目部署到Ubuntu上

前期准备

将在本地开发好的Flask项目打包,发送到云主机上,可以使用xftp等传输工具放到远程主机上。

安装python虚拟环境

sudo apt install python3-pip  

2.安装virtualenv

sudo pip install virtualenv sudo pip install virtualenvwrapper 

3.配置环境变量

 export WORKON_HOME=$HOME/.virtualenvs  source /usr/local/bin/virtualenvwrapper.sh 

4.刷新配置文件

source ~/.bashrc 

5.虚拟环境操作

mkvirtualenv 名称  mkvirtualenv -p python3 名称  workon  workon 名称  deactivate  

5.删除虚拟环境

rmvirtualenv 虚拟环境名称 例 :删除虚拟环境py3_flask 先退出:deactivate 再删除:rmvirtualenv py3_flask 

6.问题

1./usr/bin/python: No module named virtualenvwrapper

错误原因:

Ubuntu安装了2.7和3.x两个版本的python,在安装时使用的是sudo pip3 install virtualenvwrapper在运行的时候默认使用的是python2.x,但在python2.x中不存在对应的模块

解决办法:

 VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 

安装Nginx

sudo apt-get install nginx 

安装好Nginx后,系统会默认创建一个目录“/var/www/html”,若通过公网ip地址能够看到一个大写的Nginx界面就说明成功了。
Nginx配置文件路径:/etc/nginx/sites-available/default,后面会用到

安装环境

1.执行pip3 freeze > requirements.txt在本机中将项目所需的依赖输出到文本文件中。

2.在服务器中进入虚拟环境,在执行pip3 install -r requirements.txt安装所需依赖包
3.执行pip3 install uwsgi安装uwsgi

配置Nginx

vim /etc/nginx/sites-available/default 

修改文件如下所示

server {   listen 8002;                 root /var/www/Flask;  index index.html index.htm index.nginx-debian.html; server_name 公网ip(或域名); location / {   try_files $uri $uri/ =404; include uwsgi_params; uwsgi_pass 127.0.0.1:8000;  uwsgi_param UWSGI_PYHOME /var/www/Flask/venv;  uwsgi_param UWSGI_CHDIR /var/www/Flask;  uwsgi_param UWSGI_SCRIPT app:app; } } 

修改完成后重启Nignx服务

sudo service nginx restart 

配置uwsgi

 vim config.ini 

填入以下内容

   http = 内网ip:8002  chdir = /var/www/Flask  wsgi-file = app.py  callable = app  processes = 4  threads = 2  stats = 127.0.0.1:5000   daemonize = /var/www/Flask/logs/uwsgi.log 

最后执行uwsgi config.ini不出意外,flask项目就在后台执行起来了
在浏览器中输出域名(IP):端口即可访问

uwsgi开机自启动

1.首先需要将上面配置文件的daemonize改为logto,daemonize不仅告知了程序的日子文件输出位置还让程序后台运行,因此在系统启动的过程中会重复启动导致失败。

  logto = /var/www/Flask/logs/uwsgi.log 

2.创建开机启动项
/ect/init.d中新建脚本startuwsgi.sh,并赋予755权限,写入一下内容

#!/bin/sh          /usr/local/bin/uwsgi --ini /xxx/config.ini  

3.使用update-rc.d使脚本开机运行,然后重启即可完成

update-rc.d startuwsgi.sh defaults 99  

参考:https://blog.csdn.net/weixin_39212776/article/details/81321055

原文链接:https://blog.csdn.net/weixin_43435307/article/details/122672073

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享