Flask服务器部署
type
status
date
slug
summary
tags
category
icon
password
教程参考:

一、创建仓库(gitee)
建议使用
gitee,速度快。

二、安装git及使用
2.1 安装git
下载地址:
‣—官网(需科学上网)
—国内
在项目文件夹创建
gitignore文件,将以下网址中的内容复过来,这样,上传代码的时候可以忽略很多不需要上传的文件。2.2 常用git命令
- 一次性执行
- 经常执行
第一次提交会提示输入账号和密码。

三、服务器配置
4.1 git同步代码
1.先安装git
git命令
我是用的
ubuntu服务器,首先:第一次要输入码云账号和密码。
后面本地修改代码后:
- 冲突处理
以
hc_data.json为例,先解决冲突,然后执行你不想手动解决冲突,只想以远程代码为准,可以使用以下命令来强制拉取远程代码并覆盖本地更改:
如果你只想覆盖冲突的文件,而不是所有文件,可以使用以下命令:
这个命令会以远程代码为准来解决冲突。你可以对每个冲突的文件执行这个命令,然后标记这些文件为已解决:
最后,提交这些更改:
- 免密登录
输入一下命令,默认生成再
/root/.ssh中拷贝
/root/.ssh/id_rsa.pub文件中内容,粘贴到gitee设置中的SSH公钥中。输入:
4.2 安装python
- 安装
gcc
- 安装
python依赖
各依赖作用
zlib1g是zlib库的运行时库。zlib1g-dev是zlib库的开发包,包含头文件和静态库。
bzip2是bzip2压缩库的运行时库。libbz2-dev是bzip2压缩库的开发包,包含头文件和静态库。
libncurses5是ncurses库的运行时库。libncurses5-dev是ncurses库的开发包,包含头文件和静态库。
libreadline-dev是readline库的开发包,包含头文件和静态库。
libssl-dev是OpenSSL库的开发包,包含头文件和静态库。
xz-utils是XZ Utils的运行时库。liblzma-dev是XZ Utils的开发包,包含头文件和静态库。
sqlite3是SQLite数据库的运行时库。libsqlite3-dev是SQLite数据库的开发包,包含头文件和静态库。
gdbm是GNU dbm数据库的运行时库。libgdbm-dev是GNU dbm数据库的开发包,包含头文件和静态库。
tk是Tkinter库的运行时库。tk-dev是Tkinter库的开发包,包含头文件和静态库。
libmysqlclient-dev是MySQL客户端库的开发包,用于与MySQL数据库进行交互。
python-dev是Python的开发包,包含头文件和静态库,用于编译扩展模块。
libffi-dev是libffi库的开发包,用于支持C语言调用其他语言的函数。
- 下载python源码
我用的是
Python-3.10.10版本- 解压&编译&安装
- 解压
- 进入目录并编译安装
- python解释器配置豆瓣源
4.3 虚拟环境配置
- 安装虚拟环境
virtualenv
- 创建虚拟环境
(coe-panel)
在根目录创建一个
envs文件夹用于存放所有虚拟环境:创建虚拟环境
coe-panel- 激活虚拟环境

退出虚拟环境:
deactivate4.4 安装配置uwsgi
- 在激活虚拟环境下安装uwsgi
- 基于uwsgi运行flask项目
- 命令的方式(不推荐)
- -配置文件(推荐)
- 在项目文件夹内创建
coe-panel_uwsgi.ini配置文件
http协议监听了8080端口,让uwsgi只用来处理动态请求⚠️PS:配置文件不要放注释
然后执行
coe-panel_uwsgi.ini文件如果后台运行要关闭,查找
uwsgi相关程序后kill4.5 安装配置NGINX文件
- 安装
更新系统软件包:
安装
Nginx- 配置
修改
niginx.conf配置文件:/etc/nginx/niginx.conf执行
sudo nginx -t检查一下配置是否有误- 启动
4.6 域名和https
参考文章:利用Nginx代理被墙网站实现访问
4.7 tmux创建持久会话
在运行了
uwsgi --ini coe-panel_uwsgi.ini & 后,它会将 uwsgi 进程放入后台运行。但是,一旦断开 SSH 连接,会话结束时,该后台进程也会随之终止。
如果您希望在断开 SSH 连接后仍然保持 uwsgi 进程的运行,可以使用tmux- 启动
tmux会话:在终端中输入以下命令以启动一个新的tmux会话:
复制
这将创建一个名为
"uwsgi-session" 的新会话。- 在
tmux会话中运行命令: - 运行以下命令以激活虚拟环境:
- 运行
uwsgi命令以启动应用程序:
uwsgi 进程将开始在 tmux 会话中运行。现在可以安全地断开 SSH 连接,而不会影响 uwsgi 进程。- 重新连接到
tmux会话:当您需要再次连接到服务器并查看uwsgi进程的输出时,可以使用以下命令重新连接到tmux会话:
这将重新连接到之前创建的名为
"uwsgi-session" 的 tmux 会话。- 激活
tmux会话:如果您当前没有激活tmux会话,请使用以下命令重新连接到会话:
这里的
"uwsgi-session" 是之前创建的 tmux 会话名称。- 在
tmux会话中执行退出命令:按下Ctrl + D或输入exit命令来退出tmux会话。 - 如果会话中只有一个窗口,那么整个
tmux会话将被终止。 - 如果会话中有多个窗口,那么您将退出当前窗口,但会话中的其他窗口仍然保持活动状态。
4.8 其他注意事项
- 我是
python开发的项目,需要在虚拟环境中安装项目所需要的库,例如:
- 注意防火墙是否将相关端口打开
4.9 服务器常用命令
启动新
tmux 会话:tmux new-session -s uwsgi-session重新连接到
tmux 会话:tmux attach-session -t uwsgi-session激活虚拟环境:
source /envs/coe-panel/bin/activate关闭虚拟环境:
deactivate启动
uwsgi配置后台运行:uwsgi --ini coe-panel_uwsgi.ini & 检查
nginx配置:sudo nginx -t重启
nginx服务:sudo service nginx restart查找
uwsgi进程:ps aux | grep uwsgi
