当前位置: 首页 > news >正文

Ubuntu上部署Flask+MySQL项目

一、服务器安装python环境

1、安装gcc(Ubuntu默认已安装)
2、安装python源码
wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tar.xz
3、安装Python依赖库
4、配置python豆瓣源

二、服务器安装虚拟环境

1、安装virtualenv
pip3.10 install virtualenv
2、创建虚拟环境
mkdir -p /usr/data/envs
mkdir -p virtualenv /usr/data/envs/nb --python=python3.10
3、激活虚拟环境
source /usr/data/envs/nb/bin/activate

三、uwsgi环境

1、安装
source /usr/data/envs/nb/bin/activate
pip install uwsgi
2、基于uwsgi运行flask项目
cd 项目目录
-命令行的方式
uwsgi --http :8080 --wsgi-file app.py --callable app
-配置文件的方式(推荐)
创建nb_uwsgi.ini文件
[uwsgi]
socket = 127.0.0.1:8001
chdir=项目目录
wsgi-file = app.py
callable = app
processes = 2
virtualenv = /usr/data/envs/nb

启动进程
source /usr/data/envs/nb/bin/activate
uwsgi --ini nb_uwsgi.ini

关闭进程
ps -ef | grep nb_uwsgi
ps -ef | grep 进程id

四、Nginx环境

1、安装ngix
sudo apt update
sudo apt install nginx
2、修改配置文件
-普通请求 ->8081端口
-/static ->项目静态资源目录
Nginx的默认配置文件路径 /etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	upstream flask {
		server 127.0.0.1:8001;
	}

	server {
		listen	80:
		listen	[::]:80;
	
		location /static {
			alias /root/zjbj_revit_family/EQPlatformServer/static;
		}

		location / {
			uwsgi_pass	falsk;
			include		uwsgi_params;
		}
	}

}


#mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#	server {
#		listen     localhost:110;
#		protocol   pop3;
#		proxy      on;
#	}
#
#	server {
#		listen     localhost:143;
#		protocol   imap;
#		proxy      on;
#	}
#}

3、启动Nginx

  • 启动
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
  • 开机启动
systemctl enable nginx
systemctl start nginx

五、uwsgi开机自启动

vi /etc/systemd/system/uwsgi.service
	[Unit]
	Description=uWSGI instance to serve myapp
	After=network.target
	
	[Service]
	User=root
	Group=root
	WorkingDirectory=/root/zjbj_revit_family/EQPlatformServer
	Environment="PATH=/usr/data/envs/nb/bin"
	ExecStart=/usr/data/envs/nb/bin/uwsgi --ini /root/zjbj_revit_family/EQPlatformServer/nb_uwsgi.ini
	 
	[Install]
	WantedBy=multi-user.target
chmod +x /etc/systemd/system/uwsgi.service

sudo systemctl daemon-reload
sudo systemctl enable uwsgi.service
sudo systemctl start uwsgi.service

六、安装MySQL

1、安装MySQL服务
sudo apt update
sudo apt install mysql-server
检查服务状态: sudo systemctl status mysql
创建数据库
CREATE DATABASE IF NOT EXISTS eqplatform CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
2、授权

   创建用户
CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'Password123!';
	授权
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
	刷新权限
FLUSH PRIVILEGES;

3、测试:
-远程测试: 配置 MySQL 以允许远程连接
编辑MySQL的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf(或相应的配置文件,具体取决于你的MySQL版本和安装方式),找到bind-address行,并将其值改为0.0.0.0以允许任何地址的连接,或者指定一个特定的IP地址。

4、启动MySQL
5、连接MySQL

七、防火墙开启端口

sudo ufw allow 5000
sudo ufw allow 8080

相关文章:

  • 【C++】每日一练(链表的中间结点)
  • 蓝桥云客 挖矿
  • `gradio save_to_cache permission denied`
  • LeeCode题库第1456题
  • Linux应用:进程的回收
  • 2018年全国职业院校技能大赛高职组-计算机网络应用竞赛竞赛样题C卷
  • springboot+springai调用deepseek实现与大模型对话聊天
  • Log4j2漏洞攻略
  • H.264视频编解码:从原理到应用
  • 【日志队列】log日志实时写入队列,流式输出
  • 【Java 基础(人话版)】进制转换
  • 【区块链】以太坊
  • 什么是云原生?
  • 前端主题切换架构设计方案
  • 蓝耘携手通义万象 2.1 图生视频:开启创意无限的共享新时代
  • 【软设中级】软件设计师中级专题复习:(专题二)程序语言部分
  • 从AI产品经理视角深度剖析Manus:技术、定位与商业化的三重跃迁
  • 如何快速检测光模块内部光纤裂纹?
  • C++ primer plus 类和对象下
  • 从头开始学C语言第二十三天——指针概念
  • 国家统计局公布2024年城镇单位就业人员年平均工资情况
  • 中国社联成立95周年,《中国社联期刊汇编》等研究丛书出版
  • 缅甸内观冥想的历史漂流:从心理治疗室到“非语言现场”
  • 5吨煤炭“瞬间蒸发”?掺水炭致企业损失千万,腐败窝案曝光
  • 上海国际电影节特设“今日亚洲”单元
  • 默茨首访聚焦欧洲,欲推欧洲防务自主