使用宝塔面板快速部署Django项目

本篇内容主要参考:使用宝塔快速部署Django项目
文章,这篇文章在过程有些遗漏和补全的地方,在这里进行补充来做记录
python版本:3.7.2
服务器系统:centos8
django版本:3.0.3

一、服务器安装宝塔面板并进行基础设置

安装方法很简单,远程到服务器,输入命令进行安装即可

# 安装命令 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 

中途会有一次确认,按照操作提示输入 y 即可。

安装成功后,控制台会显示出宝塔面板的登录地址、用户名、密码。如下图所示,将内容记录好。

进行登录后,会提示推荐安装套件,直接关闭即可。然后点击左侧菜单栏中的面板设置,调整面板的 端口、安全入口、用户名及密码。修改完成后,记得点击最下方的保存。

二、安装环境包

宝塔的基础设置搞完了,接下来我们安装环境部署的一些必要软件程序:python、nginx、mysql(如果用到了就安装)
注意:这里我们用的是Django3的版本,从Django2.0起就不支持mysql5.5了,所以这里要安装高版本的mysql,推荐mysql5.6

在宝塔左侧菜单栏 点击 软件商店,第一页我们就可以看到nginx,点击安装选择急速安装即可。

与此同时,我们选择 宝塔插件 类别,在该类别下 选择 Python项目管理器 进行安装

安装成功后,会有一个 首页显示 的开关,我们打开这个开关,记得nginx也要打开这个哦。这个时候 我们在首页就可以看到了,因为后面我们会经常使用,所以最好要展示在首页。

接下来,我们该安装 python 了,在首页点击 python项目管理器,会出现一个弹窗,点击版本管理,选择一下你项目开发时使用的 python 版本。我使用的是 python 3.6.5 所以我安装这个版本。

注:python 2.7.5 显示已安装,这是系统自带的,我们不用管他。

三、上传项目文件并创建python项目

在上传项目文件的时候,我们需要先配置好项目所有的环境依赖包,所以,在本地开发的时候建议使用虚拟环境,这样我们创建依赖文件的时候,能减少引入一些不必要的包。在本地项目环境目录中(如果是虚拟环境,需要激活虚拟环境再进入项目目录)【django项目目录,即是在manage.py文件所处的路径】输入下方命令

pip freeze > requirements.txt # 注意当前是 pip 还是 pip3 

会生成一个 requirements.txt 文件,里面就会包含我们当前环境下所有的python包。

接下来,打开宝塔面板,点击 文件 ,此时注意路径需要在/www/wwwroot/下

点击上传按钮,选择目录,将我们项目的整个目录都上传上来(可以不用上传venv目录,这个是虚拟环境目录,会自动生成)。 我的项目在电脑路径为D:/xzbcx_1.11,此时上传就选择django_test目录。上传弹窗需要加载一会才能展示出文件,之后点击弹窗底部的开始上传,在右上角有一个进度条,等上传完成后就可以关闭该弹窗。

项目文件大的话上传时间就会比较长,是的,我上传了三十多分钟。

好了,现在我们开始创建 python 项目。打开首页的 python 项目管理器,点击 添加项目。填充数据:

  • 项目名称: 自定义就行,你开心就好

  • 路径: 定位到项目目录即可

  • Python 版本: 选择你项目对应的 python 版本

  • 框架: 选择 django

  • 启动方式: uswgi(自测了一下只有uswgi启动方式可行,其他的都没用,添加后服务启动不起来,除非自己去服务器手动启动)

  • 启动文件/文件加: 定位到 wsgi.py 所在的路径

  • 端口: 自定义就行,你开心就好,注意不要和系统端口冲突,设置1024端口号之后的,不然就算你开心也没用。

  • 勾选上 是否安装模块依赖 与 开机启动

点击确定,然后等待创建。

注意: 选择的框架是 django 的时候,不需要设置

创建成功后,点击配置,增加一行wsgi.py的位置

wsgi-file = 你的文件路径 

四、创建并同步数据库

在宝塔面板左边菜单选择数据库,然后添加一个数据库:

创建完数据库后,把你项目中的数据库导出然后上传。如果你不从本地同步数据库导入,也可以直接在服务器上根据django规则来重新生成数据库。生成数据库步骤如下:

  • 打开宝塔SSH终端
  • 定位到项目目录
cd /var/www/wwwroot/xxx 
  • 进入虚拟环境
source xxx_venv/bin/activate 
  • 同步数据库
python manage.py makemigrations python manage.py migrate 

创建完数据库之后,宝塔会自动生成用户名和一个随机密码

为了能连接数据库,这个时候需要把项目中的数据库配置修改一下。进入setting.py文件进行编辑,将下面的NAMEUSERPASSWORD修改成上图中的对应值之后保存。

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库名称', 'USER': '用户名', 'PASSWORD': '数据库密码', 'HOST': '', 'PORT': '' } } 

五、检查项目是否运行成功

经过上面的操作之后,项目已经在本地服务器运行起来了,这个时候先检查一下项目运行的状况,是否有报错。

在面板中Python项目管理器 ,点击右侧的日志选项,查看你项目的运行状况,我这边项目的日志如下:

  • 找到 venv(虚拟环境路径)/lib/python/site-packages/django/db/backends/mysql/base.py
  • 注释掉下面两行代码
version = Database.version_info # if version < (1, 3, 13): # raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__) 
  • 重启python项目

继续观察日志,直到没有新的报错日志出现就说明项目运行成功了!

五、关闭DEBUG模式,调整静态设置

DEBUG模式设置为False,ALLOWED_HOST 添加 ‘*’

DEBUG = False ALLOWED_HOSTS = ['*'] 

配置静态文件地址为/home/xxx_static/static/,后面会统一把静态文件移至该目录

STATIC_URL = '/static/' STATICFILES_DIR = [ os.path.join(BASE_DIR,'static'), ] STATIC_ROOT = '/home/xxx_static/static/' 

六、设置网站服务,并配置nginx代理

上述操作,我们已经在内部启动了,接下来就是设置成网站服务,提供外部访问,并设置 nginx 代理加载静态文件。

在网站中点击我们刚才映射出的域名或ip,会出现一个弹窗,选择 反向代理-》配置文件

找个缝隙,来添加静态文件和媒体资源的配置。

关于静态文件:就是存放css,js文件的位置。django框架中以static命名的。

关于媒体资源:比如用户上传图片的存放位置,一般命名有 media。 你设置的什么名字就写什么名字。

location /static/ { root /home/xzbcx1_static/; break; } location /media/ { alias /www/wwwroot/xzbcx1.11/media/; } 

按照文件路径设置即可,只需要替换红色框内的,换成你的路径,其他的不用动。如果保存的时候出现报错,就把空格啥的删除一下。

完成之后需要在项目中执行以下如下命名收集admin后台的静态文件,不然通过uwsgi服务启动的django服务,会找不到admin的样式文件导致样式失效。

  • 进入项目根目录
cd /var/www/wwwroot/xxx 
  • 进入虚拟环境
source xxx_venv/bin/activate 
  • 执行如下命令(该命令将收集项目中所有静态资源,转移到上面配置的/home/xxx_static/static/目录)
python manage.py collectstatic 
  • 重启python项目和nginx服务

到此,万事大吉!可以通过你设置的域名或ip进行访问了。

七、后话

当涉及到调整代码时,可以在线调整,或者线下调整完成后,上传调过的文件,然后在首页 python 项目管理器 内重启服务即可。

原文链接:https://www.jianshu.com/p/d2993dd31b1e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享