使用宝塔面板部署Django应用
本地操作
- 备份数据库
# 备份数据库
mysqldump -u root -p blog > blog.sql
- 创建requirements
# 创建requirements.txt
pip freeze > requirements.txt
- 将本项目打包成zip文件上传到服务器
宝塔面板部署
- 进入宝塔面板 在软件商店安装Myql5.7 python项目管理器2.4 Nginx1.24
- 然后点击数据库栏点击添加数据库,一般数据库名就用django应用的数据库名
然后导入刚才备份的数据库sql文件
- 然后将刚才上传的zip文件解压到www/wwwroot目录下,然后修改配置文件
修改settins.py文件,注意这里的密码就是刚才创建数据库时生成的密码
# 修改数据库配置
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
'USER': 'blog_project',
'PASSWORD': 'xxxxx',
'HOST': 'localhost',
'PORT': '3306',
'NAME': 'blog_project',
}
}
在根目录下创建uwsgi.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
- 点击软件商店,点击python项目管理器的设置,点击添加项目
注意这里项目路径要填到manage.py文件的上一级目录,也就是项目的根目录,确保这里面有requirements.txt文件和manage.py文件。
启动文件要选择wsgi.py文件
- 映射到域名,输入刚才自己的域名即可
- 修改一下nginx的配置文件,将域名指向到django的端口,设置静态文件目录
location /static/ {
alias /www/wwwroot/blog_project/static/; #静态资源路径
}
- 重启nginx和python项目管理器,然后访问域名,如果出现主页,说明部署成功
可能部署失败的情况
如果出现诸如502 或者 Internal Server Error等错误,大概率是setting.py文件中的数据库配置有问题.(如果你照着我的步骤操作的话),或者是pip 安装失败,点击应用管理器里面的模块查看是否安装好相应的库,如果没有的话,用下面的语句进行手动安装,一般requirements.txt设置好后,无法通过启动器自动安装的,你手动安装也会报错,这时候就是requirements.txt的问题了,要回本地再看看是不是本地开发环境的包。
如果出现页面加载成功,但是样式、图片等资源加载不出来,可能是静态资源没有配置好,具体来说就是在nginx的配置文件中加入
location /static/ {
alias /www/wwwroot/blog_project/static/;
}
如果出现404错误,可能是python项目忘记启动,重启一下即可。