ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

ubuntu 18.04 搭建flask服务器(大合集)

2020-10-09 21:32:23  阅读:282  来源: 互联网

标签:18.04 flask sudo 使用 mysql MySQL 安装 ubuntu


ubuntu 18.04 搭建flask服务器(大合集)

Ubuntu python flask 服务器


本次使用的Ubuntu版本为:Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-112-generic x86_64)

本文档基于aliyun服务器上部署个人站步骤建立,全为个人实操,请参考自己项目使用,因为aliyun服务器中的Ubuntu镜像默认使用的就是阿里源,所以我不需要进行换源操作(推荐换为国内源软件下载速度快)

因为服务器上使用的是root账户,所以部分命令没有加sudo权限也能使用,个人电脑上安装时,相应命令无法使用时,可以加上 sudo权限试试

准备:

本次搭建的是flask服务器环境,需要安装的组件有Nginx、MySQL、uwsgi、flask
Ubuntu 18.04中自带的python版本为
Python 2.7.17 (default, Jul 20 2020, 15:37:01)
Python 3.6.9 (default, Jul 17 2020, 12:50:27)
我的项目python3.6就够用了,所以我不需要对python环境进行改变,如有其它需求,请自行对应修改。

对Ubuntu相关资源升级
1. linux资源升级 sudo apt-get update
2. linux软件升级 sudo apt-get upgrade

Nginx组件下载安装

1、Nginx下载并安装 sudo apt install nginx
2、查看安装状态:sudo systemctl status nginx
截图

3、查看安装版本:sudo nginx -v
截图

4、上面结果正确后,浏览器访问你服务器的地址可得到下面结果(默认情况下,阿里云的80端口是打开的,如果是本地的话还可能需要配置端口以及防火墙,请自行操作,本地地址http://127.0.0.1:80)

MySQL下载安装

1、MySQL下载安装:sudo apt-get install mysql-server

2、配置MySQL,初始化:sudo mysql_secure_installation
1)验证密码插件可以用来测试密码提高安全性。它检查密码的强度只允许用户设置足够安全。是否要设置验证密码插件?

我选的 N (因为我是个人站,学习使用)
2)然后输入密码,第二次再次输入确认,这个密码就是MySQL数据库的root账号密码

3)默认情况下,MySQL安装有一个匿名用户,允许任何人登录MySQL而不必为他们创建的用户帐户。这只是为了测试,并使安装变得更加顺利。您应该在进入生产之前删除它们环境。

我选的 N
4)通常,只允许根用户从“本地主机”。这确保了有人不能猜到来自网络的根密码。

我选的 Y
5)默认情况下,MySQL附带一个名为“test”的数据库任何人都可以访问。这也仅用于测试,在投入生产前应将其移除环境。

我选的 Y
6)重新加载特权表将确保所有更改到目前为止,将立即生效。

我选的 Y

3、检查服务状态 systemctl status mysql.service ,出现以下结果及说明正常。

4、配置远程访问(仅本地使用即可不管)
1)首先使用root用户登入MySQL sudo mysql -uroot -p,回车后输入密码

2)GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "password";
\*.*:代表可以访问所有数据库和表
root:代表远程登录的用户名为root
"%":代表任何ip地址都可访问,默认为本地localhost
"password":代表远程访问root用户的密码是password
成功后会输出如下字样:Query OK, 0 rows affected, 1 warning (0.00 sec)
成功后使用exit; 退出数据库命令行

实例:
1 创建数据库weixx
CREATE DATABASE weixx;
2 创建用户wxx(密码654321) 并允许wxx用户可以从任意机器上登入mysql的weixx数据库
GRANT ALL PRIVILEGES ON weixx.* TO wxx@"%" IDENTIFIED BY "654321";

5、编辑mysql配置文件vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address= 127.0.0.1注掉。
或者在bind-address后面增加远程访问IP地址
bind-address=127.0.0.1 114.196.197.1(允许多个IP可访问mysql服务器,空格隔开)
我是简单粗暴直接注释掉

6、重启MySQL服务 service mysql restart ,重启后systemctl status mysql.service检查服务状态是否为runing,是则正确。

flask 环境安装配置

flask可以安装在虚拟环境中,也可全局安装

1、全局安装 pip3 install Flask ,flask后面可跟版本号,不加版本号默认安装资源路径最新版, (aliyun的Ubuntu中pip默认指向的是python2,我需要用python3,所以使用pip3,如果你默认pip指向为python3则使用pip即可)

使用python -m Flask --version命令验证安装,该命令将打印 Flask 版本.

我使用的是 python3 -m flask --version 命令,本教程记录时flask最新版为1.1.2
Python 3.6.9
Flask 1.1.2
Werkzeug 1.0.1

2、虚拟环境中安装。
1)安装虚拟模块 sudo apt-get install python3-venv.
对于使用python2的来说,那么 venv 模块无法使用。相应的,必须安装 virtualenv.
virtualenv 通过操作系统的包管理器安装:
sudo apt-get install python-virtualenv
2)在任何安全位置创建一个你的项目文件夹,用于存放你的项目和虚拟环境,如myproject。然后进入myproject.
使用python3 -m venv venv创建一个环境.创建完成后myproject里面会多一个venv文件夹
3)激活相应的虚拟环境:
. venv/bin/activate,也可以使用source venv/bin/activate激活

激活后,你的终端提示符会显示虚拟环境的名称venv
4)激活后,在虚拟环境中可使用pip安装flask: pip install Flask
使用命令 pip 而不是 pip3 、 python 而不是 python3。
(不过我在实际使用中,项目后面安装组件的时候有时使用python安装不上,而使用python3反而安装上了,请自己结合实际使用)
5)使用python -m flask --version验证安装

到此flask就安装完成了。接着就开始在你的项目中写代码吧

3、停用虚拟环境
完成工作后,通过键入 deactivate 来停用环境,你将返回正常的 shell。

flask 项目部署

首先将你的完整项目上传到服务器上,上传的方法有许多,自行上传
我使用的是git方式: git在Ubuntu 18.04上安装方法

项目上传到服务器上后,安装缺少的组件
在本地生成requirements.txt文件
pip freeze > requirements.txt
然后在服务器虚拟环境中安装requirements.txt依赖
pip install -r requirements.txt

所有依赖安装完成后使用python运行项目,如果能成功则进入下一步,否则解决所有错误。
项目调试完毕后,进行项目部署

uwsgi 安装

1、使用命令 pip3 install uwsgi 安装uwsgi
2、在项目更目录下新建一个ini文件 vi uwsgi_conf.ini
文件内容参考如下:

我的小站还在建设中,所以本文持续更新……

标签:18.04,flask,sudo,使用,mysql,MySQL,安装,ubuntu
来源: https://www.cnblogs.com/warm-home/p/13788652.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有