赞
踩
本文参考了以下文章,通过自己的摸索脱坑。与参考的文章有细微差别有可能是使用的软件版本不一样引起的。
使用宝塔面板快速部署Django项目_宝塔 go项目部署_一越王超的博客-CSDN博客
使用宝塔面板快速部署Django项目-Django社区,Django中文网,django教程,Django!
好开始我小白的踩坑记(第一次用Django开发):
安装地址:宝塔官网
点击进入后显示如下:
下面的注意事项来自官网:
这个我就不过多介绍了,我用的是命令安装。
Linux面板8.0.2安装脚本
安装代码如下(不会自行度娘):
- #Centos
- yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
-
- #Ubuntu/Deepin
- wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
-
- #Debian
- wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec
-
- #万能
-
- if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec
-
- #国产龙芯
- wget -O install_panel.sh https://download.bt.cn/install/0/loongarch64/loongarch64_install_panel.sh && bash install_panel.sh ed8484bec
我用到这些模块的顺序是:
软件商店(安装Python项目管理器)----数据库(增加我要用的Mysql数据库)----网站(添加站点)-----文件(上传项目文件,查看日志文件、修改配置、模板、视图文件等,他内置有代码编辑器) 这个后面说
我用的是Django4,数据库是Mysql(切记Django4 不支持Mysql8以下 ),我安装宝塔面板时没有截图用下别人的:
我是在自己的内网服务器上空间多的是,所以在推荐LNMP里的我全装了,记得一定要选MySql8
点击一键安装就是·····等待
可以关掉提示窗口干其他的,当然如果没有安装完成你什么也干不了。想要再打开点面板左上角你IP或域名的右边的提示数。如下:
进入软件商店,在应用分类选全部,在应用搜索内输入“python”回车(引号不输入),在下方出来的结果双击安装。
必装应用如下:
点击:数据库----添加数据库----填写数据库名(会自动生成同名的用户名可以自行修改)-----点击提交。由于我开发的时候就是用的这个数据库就没有再做迁移。个人建议导入开发数据库结构(如果开发数据也要保留就都导入)。
点击:网站----添加站点----填写完成提交
- #引入OS
- import os
-
- #BASE_DIR就是你新增站点时的那个根目录www/wwwroot/你的域名或IP
- BASE_DIR = Path(__file__).resolve().parent.parent
-
- # SECRET_KEY = '***你的KEY***' 注释掉,在根目录新建key.txt写入你的KEY
-
- #从key.txt读取你的key到DJANGO_SECRET_KEY
- with open('key.txt') as f:
- DJANGO_SECRET_KEY = f.read().strip()
-
- #如果你的DJANGO_SECRET_KEY不为空就赋值,否则使用默认“你的KEY”,在开发环境用KEY.TXT,在部署用默认文本
- SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', '***你的KEY***')
-
-
- # 设置Django静态文件的前缀为"/jgrygl/static/",这样在模板中引用静态文件时就可以使用这个前缀了, 比如在模板中引用一个CSS文件,就可以使用`{{ STATIC_URL }}css/style.css`这样的语法
- STATIC_URL = '/你的项目目录/static/'
-
- # 设置Django静态文件的根目录,你的static文件夹在哪里就写哪里,这个目录会被Django用来收集所有的静态文件
- STATIC_ROOT = os.path.join(BASE_DIR, '你的路径/static')
-
-
- #设置DEBUG为环境变量DJANGO_DEBUG的值,如果DJANGO_DEBUG不存在则默认为True
- DJANGO_DEBUG = ''
- DEBUG = bool(os.environ.get('DJANGO_DEBUG', True))
-
-
- TEMPLATES = [
- ...
- #设置模板的搜索路径为BASE_DIR同级目录下的'jgrygl/templates'目录
- 'DIRS': [BASE_DIR / '你的路径/templates']
- ...
- ]
-
- #数据库配置
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql',
- 'NAME':'你的数据库名',
- 'USER': '你的用户名',
- 'PASSWORD': '你的密码',
- 'HOST': '127.0.0.1', #如果你的数据库在其他地方就写你的地址
- 'PORT': '3306', #你的端口
- }
- }

在PyCharm 终端内输入:
pip freeze > requirements.txt
运行完成生成 requirements.txt 文件,注意图中的几个坑,不常用或错误的模块或开发平台不一致的模块 都要删除。
把你的项目压缩打包为 .zip文件,只能是zip(rar 识别不了)
双点击网站里新增站点的根目录或文件----选择目录----上传(下图)
文件上传完成,进入到根目录进行解压操作。
大家注意这里有个坑,上面的解压文件窗口,我上传的文件是tjjg.zip解压到的也是根目录,点击 解压后实际的情况是他整个解压到了“ /www/wwwroot/你的域名/tjjg ”文件夹内,我们需要进入tjjg文件夹把里面所有的文件剪切出来复制到“ /www/wwwroot/你的域名/ "根目录内(要不然你就要到设置内把根目录改成“ /www/wwwroot/你的域名/tjjg ”)。
点击 软件商店--python项目管理器-- 添加项目
项目名称:符合命名规范不能有中文;
python版本:按你的环境选择;
框架:django;
启动方式:uwsgi
项目路径:先你的网站根目录(也就是你上传项目文件的目录)日志和启动两个目录会自动生成
端口:选没有占用的;
勾选安装模块依赖(就是我们生成的requirements.txt里面的模块)、开机启动,如果需要守护进程须在运行项目的用户选择root,并事行在软件商店内安装官方的“进程守护管理器”
点击确定后系统会自动安装你需要的python等所有你需要的环境、模块、框架(如果这步顺利走完那恭喜你很快就能访问你的项目了),安装的东西比较多所有等待时间可能较长。添加完成后如下 图。
你可以在这里对模块进行管理。
使用Python项目管理插件新建项目成功之后,会自动在项目j源码目录里创建一个虚拟环境,虚拟环境目录一般都是以xxxxxxx_venv形式命名的。(由于我的模块有很多不能识别的所以我我没能成功进入虚拟环境,我就不写了)
进入虚拟环境方法:
#1.9版本的: source /www/wwwroot/www.django.cn/myblog_venv/bin/activate #2.0版本的 /www/wwwroot/www.django.cn/d69daf27a976191fa87ff9_venv/bin/python3 manage.py makemigrations /www/wwwroot/www.django.cn/d69daf169413721fa87ff9_venv/bin/python3 manage.py migrate /www/wwwroot/www.django.cn/d69daf169413721fa87ff9_venv/bin/python3 manage.py runserver
我遇到的在安装环境时跳出出错,你可以在/www/wwwroot/你的无名或IP/****_venv/bin
文件里找一下是不是有以“~”开头的文件删除掉就可以了。删除后再重新添加项目。
添加项目成功后,系统会自动在根目录里新建一个uwsgi.ini文件,你可以在上图中的配置或者在文件里找到他双击进行编辑。编辑配置文件前一定要关闭项目不然你修改后保存时会提示你端口被占用导致保存失败。
- [uwsgi]
- chdir = /www/wwwroot/你的域名或IP/
- # 切换uwsgi工作目录
- wsgi-file= /www/wwwroot/你的域名或IP/你的项目名/wsgi.py
- # 指定wsgi入口文件
- processes = 4
- # 启动4个工作进程
- threads = 2
- # 每个工作进程启动2个线程
- master = true
- # 启用主进程模式
- pidfile=uwsgi.pid
- #进程文件
- http = 0.0.0.0:9999
- # 监听9999端口(网站入口要与Nginx里的uwsgi_pass一致,改成你自己的端口)
- logto = /www/wwwroot/你的域名或IP/logs/error.log
- # 日志输出到指定的文件
- chmod-socket = 660
- # 设置socket文件的权限
- vacuum = true
- # 进程退出时清理资源
- uid=root
- # 设置uwsgi进程运行所使用的用户
- gid=root
- # 设置uwsgi进程运行所使用的组
- max-requests = 1000
- # 每个工作进程最大请求数
- daemonize=/www/wwwroot/你的域名或IP/uwsgi.log
- #配置dump日志记录

其他的教程说的是在网站的配置里修改如下数据,但是我测试了很多次都无法保存,提示出错。
我的修改方法是:在软件软件商店--双击 Nginx -- 点击配置修改 -- 在 server{}内加入如下代码
- location / {
- include uwsgi_params;
- uwsgi_pass 127.0.0.1:9999; #端口要和uwsgi里配置的一样
- uwsgi_param UWSGI_SCRIPT 你的项目名.wsgi; #wsgi.py所在的目录名+.wsgi
- uwsgi_param UWSGI_CHDIR /www/wwwroot/你的域名或IP/; #项目路径
- }
- location /static {
- #如果你的static目录就在根目录下就是alias /www/wwwroot/你的域名或IP/static/;
- alias /www/wwwroot/你的域名或IP/你的存放static目录的目录/static/;
-
- }
到这里不出意外你就能访问你的网站了。下面是我的页面
但是不出意外就是意外。
如果出现网站访问不了、CSS样式不对、静态文件不对,你可以把你的settings.py中的 DEBUG = True 设置为真这样你就可以在网页端看出出错信息(处理完成一定要把 DEBUG设置为False),并和/www/wwwroot/你的域名或IP/uwsgi.log(在python项目管理里的配置的daemonize=/www/wwwroot/你的域名或IP//uwsgi.log)的日志信息进行排查错误并度娘。
总知:我这个小白反反复复搞一个星期,各种度娘,各种不对,大家要有耐心。当看到主页显示出来的时候那个开心啊。大家不要放弃各种错误我们一个一个的处理,不要怕改配置文件最多只是重来一次(和打副本差不多)。由于各种环境、版本的升级可能我现在的操作也不合适以后的环境,主要还是大家要有耐心,有耐性。写给小白的自己~~~~~~~~~~~~~~。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。