宝塔部署Django(2023最新踩坑记录)

本文节选自我的博客:宝塔部署 Django (2023 最新踩坑记录)

  • 💖 作者简介:大家好,我是MilesChen,偏前端的全栈开发者。
  • 📝 CSDN主页:爱吃糖的猫🔥
  • 📣 我的博客:爱吃糖的猫
  • 📚 Github主页: MilesChen
  • 🎉 支持我:点赞👍+收藏⭐️+留言📝
  • 💬介绍:The mixture of WEB+DeepLearning+Iot+anything🍁

前言

随着各个软件的迭代升级,网上的教程、b站的视频都不是最新的。我跟着做了十几份过时教程,折腾了好久,踩了不少坑。才有这篇文章,问题汇总在最后,希望能帮到你。

环境

  • CentOs7.9
  • 宝塔7.9.10
  • python项目管理器2.5
  • python 3.6.8
  • Nginx 1.22.1
  • MySQL 5.7.40
  • Django3.2.19
  • PyMySQL 1.0.2
    这些环境之间大部分都是兼容的,但需要注意Django和MySQL的版本对应关系,版本不兼容就会报奇怪的错误。

安装

环境安装

  1. 安装宝塔 安装请百度搜索,这里不赘述。
  2. 安装python项目管理器2.5,目前最新版本是2.5,可以把首页显示顺手打开
  3. 安装MySQL,搜索直接安装,注意版本和Django版本的对应关系

项目配置

  1. 上传Django工程目录

  2. 修改setting.py文件,这个文件的位置在 项目名称/setting.py。修改两处地方

  • DEBUG = False
  • ALLOWED_HOSTS = [‘*’],或者改成你的域名,或者是IP地址
  1. 在项目根目录下新建uwsgi.ini文件,内容如下
[uwsgi]
master = true
processes = 1
threads = 2
master = true
chdir = /www/wwwroot/gpss.xxxxxx.cn
wsgi-file= /www/wwwroot/gpss.xxxxxx.cn/item/wsgi.py
http = 0.0.0.0:7758
logto = /www/wwwroot/gpss.xxxxxxx.cn/logs/error.log
daemonize = /www/wwwroot/gpss.xxxxxx.cn/logs/test.log
chmod-socket = 660
vacuum = true
uid=root
gid=root
max-requests = 1000
  1. 使用Python项目管理器 添加Django项目,启动文件的 item 改成你的项目名称对应的目录,需要等等几分钟。

  2. 查看配置,检查配置文件的内容,注意wsgi-file后面的是 ** you_project/wsgi.py**,网上大部分教程都是uwsgi.ini 这是老版本的项目管理器了。

9 . 配置数据库,这里可以直接新建数据库

修改setting.py,改成你的数据库配置。

注意:这里有个版本的大坑参考
目前新版本的python项目管理器不在支持source myDjango_venv/bin/activate,的方式进入虚拟环境了,现在连activate文件都找不到。
python管理器2.0已经取消了虚拟环境了,项目路径会建一个md5格式的python目录
原先的命令:

source myDjango_venv/bin/activate
python manage.py makemigrations
python manage.py migrate

目前需要使用下面来执行创建创建表的命令

/www/wwwroot/item/d25eca96acb766c045e1d72f4b9a223c_venv/bin/python3 manage.py makemigrations
/www/wwwroot/item/d25eca96acb766c045e1d72f4b9a223c_venv/bin/python3 manage.py migrate
路径在这里查看

  1. 点击映射,没有域名就写IP:PORT,注意把防火墙打开

    目前网站一句可以访问了,打开http://gpss.xxxxxx.cn/,可以得到HTML内容
    ,还需要设置 nginx 代理加载静态文件。

  2. 到网站会多了一个反向代理站点,点击设置

在弹窗中选择反向代理-》配置文件添加来添加静态文件和媒体资源的配置。我这里只有静态资源

location ^~ /static/ {
    alias /www/wwwroot/gpss.xxxxxx.cn/static/;
}
location /media/ {
    alias /www/wwwroot/gpss.xxxxxx.cn/media/;
	}

效果

问题汇总

  1. 打开映射后的地址502,重启Django项目,一定要点状态的手动关闭,再启动,后面那个重启按钮有些问题。

    一定要点状态栏的启动、暂停!!!
    一定要点状态栏的启动、暂停!!!
    一定要点状态栏的启动、暂停!!!
    不然就会像我一样出现时而好使,时而不好使。

  1. 打开映射后的地址404,路由检查映射有没有打开、检查nginx网站有没有打开

  2. 打开映射后的地址Internal Server Error ,在暂时状态修改配置文件,修改完保存后,手动启动。


如果对您有帮助,麻烦点赞收藏、让更多踩坑的人看见,有任何疑问和想法,欢迎在评论区与我交流。

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值