使用宝塔面板部署Django应用(不成功Kill Me!)

使用宝塔面板部署Django应用

文章目录

本地操作

  1. 备份数据库
shell 复制代码
# 备份数据库
mysqldump -u root -p blog > blog.sql
  1. 创建requirements
shell 复制代码
# 创建requirements.txt
pip freeze > requirements.txt
  1. 将本项目打包成zip文件上传到服务器

宝塔面板部署

  1. 进入宝塔面板 在软件商店安装Myql5.7 python项目管理器2.4 Nginx1.24
  1. 在网站栏点击添加站点 输入域名 其他都不创建
  1. 然后点击数据库栏点击添加数据库,一般数据库名就用django应用的数据库名

然后导入刚才备份的数据库sql文件

  1. 然后将刚才上传的zip文件解压到www/wwwroot目录下,然后修改配置文件

修改settins.py文件,注意这里的密码就是刚才创建数据库时生成的密码

python 复制代码
# 修改数据库配置
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        'USER': 'blog_project',
        'PASSWORD': 'xxxxx',
        'HOST': 'localhost',
        'PORT': '3306',
        'NAME': 'blog_project',
    }
}

在根目录下创建uwsgi.ini文件,复制内容

ini 复制代码
[uwsgi]
master = true
processes = 1
threads = 2
master = true
chdir = /www/wwwroot/blog_project
wsgi-file= /www/wwwroot/blog_project/blog_project/wsgi.py
http = 0.0.0.0:8000
logto = /www/wwwroot/blog_project/logs/error.log
chmod-socket = 660
vacuum = true
uid=root
gid=root
max-requests = 1000
  1. 点击软件商店,点击python项目管理器的设置,点击添加项目

注意这里项目路径要填到manage.py文件的上一级目录,也就是项目的根目录,确保这里面有requirements.txt文件和manage.py文件。

启动文件要选择wsgi.py文件

  1. 映射到域名,输入刚才设置的域名即可
  1. 修改一下nginx的配置文件,将域名指向到django的端口
  1. 重启nginx和python项目管理器,然后访问域名,如果出现主页,说明部署成功

可能部署失败的情况

如果出现诸如502 或者 Internal Server Error等错误,大概率是setting.py文件中的数据库配置有问题.(如果你照着我的步骤操作的话)

如果出现页面加载成功,但是样式、图片等资源加载不出来,可能是静态资源没有配置好,具体来说就是在nginx的配置文件中加入

nginx 复制代码
location /static/ {
    alias /www/wwwroot/blog_project/static/;
}

如果出现404错误,可能是python项目忘记启动,重启一下即可。

相关推荐
野犬寒鸦21 小时前
WebSocket协同编辑:高性能Disruptor架构揭秘及项目中的实战应用
java·开发语言·数据库·redis·后端
鸽芷咕21 小时前
迁移即一致!金仓数据库内置数据校验能力如何支撑信创平滑替换?
数据库
橙露21 小时前
排序算法可视化:用 Java 实现冒泡、快排与归并排序的对比分析
java·python·排序算法
喵手21 小时前
Python爬虫实战:构建全球节假日数据库 - requests+lxml 实战时区节假日网站采集(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·构建全球节假日数据库·采集时区节假日数据·采集节假日sqlite存储
TDengine (老段)21 小时前
TDengine IDMP 基本概念
大数据·数据库·物联网·ai·时序数据库·tdengine·涛思数据
galaxyffang1 天前
A2A协议的简单应用
python·ai
一晌小贪欢1 天前
Python在物联网(IoT)中的应用:从边缘计算到云端数据处理
开发语言·人工智能·python·物联网·边缘计算
老邓计算机毕设1 天前
SSM医疗门诊管理系统3g2z7(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb 项目·医疗门诊管理系统
好家伙VCC1 天前
# 发散创新:基于Solidity的DeFi协议设计与实现——从原理到实战代码解析在区块链世界中,**DeFi(去中心化金
java·python·去中心化·区块链
Aric_Jones1 天前
博客音乐播放器实现全解析
java·运维·数据库·人工智能·docker·容器·eclipse