本文讲述了将Web项目部署在树莓派上的步骤和一些坑
文章目录
-
-
- 1. 树莓派系统安装
-
- 1.1 下载树莓派系统
- 1.2 SSH 连接树莓派
- 2. 搭建项目环境
-
- 2.1 安装 Python 虚拟环境
- 2.2 安装 Nginx+uWSGI
- 2.3 安装配置 vim 编辑器
- 3. 环境配置
-
- 3.1 导入项目代码
- 3.2 配置 Nginx
- 3.3 配置 uWSGI
- 4. 启动 Web 服务
- 5. 参考链接
-
1. 树莓派系统安装
- 本文是在mac系统下操作完成
- 下载 Raspberry Pi OS 官方系统,推荐下载 desktop 版本的
- 将下载的压缩文件解压得到一个系统镜像软件,再准备一个已格式化的 TF 卡,通过烧录软件 Etcher 选择镜像文件和 TF 卡进行烧录
- 等待软件烧录完毕
- 将制作好的 TF 卡重新插拔一次,电脑上会出现一个 boot
- 因为树莓派的 SSH 默认是关闭的,需要在 boot 的根目录下放一个名为 ssh 的无后缀空文件
- 把 TF 卡插进树莓派,然后连电,路由器的LAN口插上一个网线,另外一头插到树莓派上(mac系统需要在系统偏好设置中打开互联网共享)
- 打开 mac 的终端,输入
ssh pi@raspberrypi.local
,初始账号是 pi,密码是 raspberry
- 安装必要的软件
- 安装虚拟环境命令
$ sudo pip install virtualenv
- 创建项目文件夹
$ sudo mkdir myproject
- 对 myproject 文件夹进行提权
$ sudo chmod 777 myproject
,赋予可读可写可执行的权限
- cd 进入,创建虚拟环境
$ virtualenv venv(虚拟环境名称)
- 进入/退出虚拟环境
$ source venv/bin/activate
,$ deactivate
- 进入虚拟环境,安装 Flask
pip3 install flask
- 安装 nginx 和 uWSGI
sudo apt-get install nginx uwsgi
- 下载 vim
sudo apt-get install vim
- 进入vim的配置文件
# sudo vim /etc/vimrc
,并按个人习惯添加或修改
set nu # 显示行号
syntax on # 语法高亮
set tabstop=4 # tab退4格
3. 环境配置
3.1 导入项目代码
- VNC Viewer 软件有一个 File Transfer 功能,可以将项目代码拷贝进树莓里的 myproject 文件夹
- Nginx 安装完成后,还需要配置才能访问
sudo vim /etc/nginx/sites-available/default
server {
listen 80;
# 要填写最大传输大小,不然默认是1兆
client_max_body_size 1024m;
server_name raspberry;
location / {
include uwsgi_params;
uwsgi_pass127.0.0.1:5000;
}
}
- 保存退出后,启动 Nginx 服务
sudo /etc/init.d/nginx start
- 在项目文件夹下,创建并编辑 uWSGI 的配置文件
sudo vim myproject/uwsgi.ini
[uwsgi]
#uwsgi启动时所使用的地址与端口
socket = 127.0.0.1:5000
#虚拟环境目录
home = /home/myproject/venv
#项目目录
pythonpath = /home/myproject
#指向网站根目录
chdir = /home/myproject
#python启动程序文件
wsgi-file = main.py
#python程序内用于启动的application变量名
callable = app
#处理器数
processes = 4
#线程数
threads = 2
#状态监测地址
stats = 127.0.0.1:9191
4. 启动 Web 服务
- 守护运行(后台)模式启动 uwsgi 服务器
uwsgi -d --ini uwsgi.ini
- 访问服务,局域网内的其他设备在浏览器中输入树莓派的 IP 地址即可
【Linux|树莓派部署Web服务器(Pi+flask+uWSGI+Nginx)】树莓派新手指南Mac版
树莓派4b安装python虚拟环境
虚拟环境创建失败解决方法
安装vim编辑器
三步在树莓派上部署nginx+uWSGI+flask
推荐阅读
- 深度学习|TensorFlow 对数据集标记的xml文件解析记录
- nginx|Nginx学习笔记(五)(浅析Nginx原理)
- python|2022五一杯数学建模资料汇总
- 数据库开发|通过栗子来学习MySQL高级知识点(学习,复习,面试都可)
- 数学建模|22022华东杯数学建模思路实时更新-ABC思路(AC完整程序)已更新-5月1日23时
- oeasy教您玩转python - 012 - # 刷新时间
- 科研学术工具|quic-ns-3 安装配置过程【存档】
- Python MongoDB连接操作实例
- Python|假期用Python写8个小游戏(附源码)