django天天生鲜项目部署总结
项目架构图:
部署环境:谷歌云vps/Ubuntu18.04.5/宝塔面板
额外用到的生产环境:miniconda/django3.1/python3.6/celery/redis/mysql/fastdfs/nginx/uwsgi
前期工作:
注册域名、买服务器、备案(国内服务器),申请ssl证书
1. 配置服务器
1.1. vps开启http、https流量,配置防火墙开放所有端口或者使用到的端口
例如:stmp邮件服务器:25、465(ssl) fastdfs:22122(tracker),23000(storage)
1.2. 设置可远程SSH登录
# 切换root用户
sudo -i # 编辑配置文件
vi /etc/ssh/sshd_config# 修改
PermitRootLogin = yes
PasswordAuthentication = yes
:wq 保存退出# 修改root密码
passwd root# 重启SSH服务
/etc/init.d/ssh restart
1.3. 安装宝塔面板:https://www.bt.cn/
# 切换到/tmp (个人习惯)
cd /tmp# 下载并安装宝塔面板 (参考官网安装教程)
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh# 安装完会提示宝塔面板登录地址和账号密码
# 复制出来保存
2. 配置宝塔面板
2.1. 浏览器登录宝塔面板,首次登录会提示快速安装LNMP等、这里勾选了nginx、mysql一键安装
2.2. 面板设置中自定义面板安全入口、面板用户、密码等,方便后续登入
2.3. 网站中添加站点
添加ssl证书
django中导出静态文件
# settings中添加
STATIC_ROOT = 'static文件夹导出的路径'# 执行
python manage.py collectstatic
静态文件放到面板文件/www/wwwroot/你的网站默认路径下
项目文件放到外层/www/wwwroot 目录下,修改权限和所有者
3. 安装生产环境所需软件
3.1. 安装uwsgi
# 安装python开发包
sudo apt-get install python3-dev# 安装pip3
sudo apt-get install python3-pip # 安装uwsgi
sudo pip3 install uwsgi
3.2. 安装redis:https://blog.csdn.net/m0_37871461/article/details/115461649
3.3. 安装fastdfs+nginx:https://blog.csdn.net/m0_37871461/article/details/115547297
3.4. 安装虚拟环境miniconda/virtualenv
我这里使用的是miniconda:https://blog.csdn.net/m0_37871461/article/details/115419638
3.5. 安装项目第三方需求库(requirements.txt)
# 进入虚拟环境,我这里的虚拟环境名为django
conda activate django# 在requirements文件目录下执行
pip3 install -r requirements.txt
我这里的第三方需求库清单为:
amqp==5.0.6
anyjson==0.3.3
asgiref==3.2.10
billiard==3.6.4.0
celery==5.0.5
certifi==2020.12.5
click==7.1.2
click-didyoumean==0.0.3
click-plugins==1.1.1
click-repl==0.1.6
Django==3.1
django-haystack==3.0
django-redis==4.12.1
django-redis-sessions==0.6.2
django-tinymce==3.3.0
fdfs-client-py3==1.0.0
itsdangerous==1.1.0
jieba==0.42.1
kombu==5.0.2
Pillow==8.2.0
prompt-toolkit==3.0.18
pycryptodomex==3.9.4
pymysql==1.0.2
pyOpenSSL==19.1.0
python-alipay-sdk==3.0.1
redis==3.5.3
six==1.15.0
vine==5.0.0
wcwidth==0.2.5
Whoosh==2.7.4
安装完后记得拷贝jieba分词文件ChineseAnalyzer.py、whoosh_cn_backend.py到haystack/backends下
重点注意:uwsgi不要安装在虚拟环境中
4. 配置宝塔中的nginx
网站设置中添加配置项
5. 配置uwsgi
进入项目目录,创建uwsgi.ini文件
[uwsgi]
#使用nginx连接时使用
socket=127.0.0.1:8080
#直接做web服务器使用 python manage.py runserver ip:port
#http=127.0.0.1:8080
#项目目录
chdir=/www/wwwroot/dailyfresh
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=dailyfresh/wsgi.py
#指定启动的工作进程数
processes=4
#指定工作进程中的线程数
threads=2
#有一个主进程
master=True
#保存启动之后主进程的pid
pidfile=uwsgi.pid
#设置uwsgi后台运行,uwsgi.log保存日志信息
daemonize=uwsgi.log
#设置虚拟环境的路径
virtualenv=/miniconda3/envs/django
6. 启动项目
6.1. 重新迁移数据库,导入数据库中的数据
# 进入项目目录
cd /www/wwwroot/dailyfresh/# 切换虚拟环境
conda activate django# 生成迁移文件
python manage.py makemigrations# 迁移数据库
python manage.py migrate
6.2. 开启celery异步线程
# 正常worker模式,info可改成debug等
celery -A dailyfresh worker -l info# 后台守护模式
celery multi start w1 -A dailyfresh -l info --logfile=./celerylog.lo
6.3. 开启uwsgi
# 退出虚拟环境
conda deactivate# 开启uwsgi
uwsgi --ini uwsgi.ini
django天天生鲜项目部署总结相关推荐
- 【Django 天天生鲜项目05】订单(Mysql事务、并发处理、支付宝支付、评论)
本部分涉及订单的生成.并发处理.支付.评论等 关键:MySQL事务.并发处理的悲观锁/乐观锁.支付宝SDK 的使用...... 仅作为个人笔记! 目录 2.创建订单 3.订单生成 3.1. MySQL ...
- django天天生鲜项目
项目开发流程 需求分析: 模块 页面图 功能图 部署图 项目架构 数据库表 用户表和地址表是一对多,在SKU放图片是以空间换时间,比如在搜索结果下面显示商品的信息,直接提取,不用再到另一个表提取,in ...
- 天天生鲜项目开发笔记
天天生鲜项目开发笔记 说在前面的话 大学四年,忙忙碌碌,什么都学了,又好像什么都没学,总之要毕业了,毕设题目是"生鲜配送系统",B站上找到了一个天天生鲜的项目开发教程,之后文章记录 ...
- django+nginx+uwsgi项目部署文档整理
django+nginx+uwsgi项目部署文档整理 参考文章:https://blog.csdn.net/qq_42314550/article/details/81805328 一.python安 ...
- Python django天天生鲜商城系统
Python django天天生鲜商城系统 pythondjango 网络商城 pythondjango 电商商城 该套系统可以改成其他的商城,比如衣服商城.车商城等等 后端:python djang ...
- 瞬间心情愉悦,头发都少掉了几根!---Django+uwsgi+Nginx项目部署超详细步骤
文章目录 瞬间心情愉悦,头发都少掉了几根!---Django+uwsgi+Nginx项目部署超详细步骤 先决条件 步骤 本地运行测试 上传服务器 环境安装 准备django程序 完美解决! 瞬间心情愉 ...
- Django通过celery 异步发送邮件 : django开发之天天生鲜项目知识总结【5】
这里初次学习celery,只简单讲解一下如何使用celery 异步发送邮件,在以后的总结中还会,多次提到celery,因为后面很多任务都需要用到celery执行任务,后面再专门针对celery做具体的 ...
- 天天生鲜项目从0开始
天天生鲜 一.环境准备 因为此文章是实践项目文章,所以对于基础的python安装就不多做赘述,这里只交代系统环境是ubuntu操作系统,python3.5 安装虚拟环境软件 安装虚拟环境: sudo ...
- 天天生鲜项目 python邮箱_python3 之 天天生鲜 项目(初学者)1
简单第一步 假设: 你已学过 python基础.高级:了解并简单使用linux操作系统:mysql数据库.redis数据库的简单使用:掌握Django框架的使用 这是一个 很多培训机构 讲解的项目 r ...
最新文章
- ETSI — MEC — 移动性支持
- Calling handler.OnEndpointsUpdate报错原因
- 来自一名程序员的表白
- jQuery ajax的traditional参数的作用
- 如何用Snapgene 4.3.6进行序列比对及查找碱基位点
- vc 文本框 只显示下划线_Word手动添加下划线就out了?虚线、波浪线、双下划线一键搞定...
- gdb tui 安装_GDB 单步调试汇编
- 生日快乐程序员的浪漫代码_python告白代码,只属于程序员的浪漫
- [saiku] 配置saiku实时展现查询数据
- vfp中写入文本文件_VFP中操作多种文件
- 【软件工具】之录屏软件 Captura
- 正点原子STM32F103学习笔记(一)
- 深度学习教程 | 吴恩达专项课程 · 全套笔记解读
- Qt for WebAssembly 环境配置 - 知其然并知其所以然
- 【源码解析】Activity的启动模式
- (2021 ICCV)Specificity-preserving RGB-D Saliency Detection(A类)
- 电脑数据信息安全常识
- [经典面试题][淘宝]求首尾相连数组的最大子数组和
- 使用pandas处理excel,并使用Openpyxl修改单元格格式
- python断网还能用吗_python 断网
热门文章
- Windows关闭123、137、138、139、445、1900等端口监听指引
- 如何安装python3.8.2_Python-3.8.2安装
- tomcat的详细介绍
- 道路分割 matlab,MATLAB图像的道路分割技术研究
- html 判断复选框是否选中,jquery如何判断复选框是否选中?
- echarts图形化学习
- Javascript之File和Blob函数的使用、创建文件上传服务器
- MySQL数据库与SQL优化
- openJDK下载教程
- java -jar 工作原理_可执行Jar包运行原理