宝塔部署Django(2023最新踩坑记录)
随着各个软件的迭代升级,网上的教程、b站的视频都不是最新的。我跟着做了十几份过时教程,折腾了好久,踩了不少坑。才有这篇文章,问题汇总在最后,希望能帮到你。
本文节选自我的博客:宝塔部署 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的版本对应关系,版本不兼容就会报奇怪的错误。
安装
环境安装
- 安装宝塔 安装请百度搜索,这里不赘述。
- 安装python项目管理器2.5,目前最新版本是2.5,可以把首页显示顺手打开
- 安装MySQL,搜索直接安装,注意版本和Django版本的对应关系
项目配置
-
上传Django工程目录
-
修改setting.py文件,这个文件的位置在 项目名称/setting.py。修改两处地方
- DEBUG = False
- ALLOWED_HOSTS = [‘*’],或者改成你的域名,或者是IP地址
- 在项目根目录下新建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
-
使用Python项目管理器 添加Django项目,启动文件的 item 改成你的项目名称对应的目录,需要等等几分钟。
-
查看配置,检查配置文件的内容,注意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
路径在这里查看
-
点击映射,没有域名就写IP:PORT,注意把防火墙打开
目前网站一句可以访问了,打开http://gpss.xxxxxx.cn/
,可以得到HTML内容,还需要设置 nginx 代理加载静态文件。
-
到网站会多了一个反向代理站点,点击设置
在弹窗中选择反向代理-》配置文件添加来添加静态文件和媒体资源的配置。我这里只有静态资源
location ^~ /static/ {
alias /www/wwwroot/gpss.xxxxxx.cn/static/;
}
location /media/ {
alias /www/wwwroot/gpss.xxxxxx.cn/media/;
}
效果
问题汇总
-
打开映射后的地址502,重启Django项目,一定要点状态的手动关闭,再启动,后面那个重启按钮有些问题。
一定要点状态栏的启动、暂停!!!
一定要点状态栏的启动、暂停!!!
一定要点状态栏的启动、暂停!!!
不然就会像我一样出现时而好使,时而不好使。
-
打开映射后的地址404,路由检查映射有没有打开、检查nginx网站有没有打开
-
打开映射后的地址
Internal Server Error
,在暂时状态修改配置文件,修改完保存后,手动启动。
如果对您有帮助,麻烦点赞收藏、让更多踩坑的人看见,有任何疑问和想法,欢迎在评论区与我交流。
更多推荐
所有评论(0)