本文主要介绍centos+nginx+uwsgi环境使用宝塔面板如何部署django项目。
1. 新装干净的centos7系统
云服务器重置系统,各服务商大同小异。本文选择centos7.9。
查看centos版本
cat /etc/redhat-release
2. 升级sqlite3
centos7.9默认 sqlite3版本较低,运行django3会报错。
参考:https://hityne.com/83.html
3. 安装宝塔面板
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
4. 宝塔面板安装必要的环境
nginx, mysql, ftp, php。nginx必选,其他根据需要。
5. 把django项目(假设项目名称为pytest)上传至/www/wwwroot/目录
打包项目前,本地运行以下代码,生成项目的依赖包的列表文件。
pip freeze > requirements.txt
上传好后:
django项目的根目录:/www/wwwroot/pytest
wsgi文件目录:/www/wwwroot/pytest/pytest
6. 新建python项目
宝塔面板,应用商店,搜索python,安装python项目管理器。
由python项目管理器,添加项目。注意端口号,需要在宝塔面板放行。
管理器会自动安装环境,可以在终端窗口激活环境,在开发模式下运行项目,看是否可以正常访问。
7. 生成网站
由python项目,映射生成对应网站,需要填写域名。这时候可以宝塔网站项目里看到。也可以单独添加一个网站然后设置反向代理,效果一样。
8. 修改配置
(1)修改网站配置文件
修改反向代理的配置文件为以下内容:
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:1022; #端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT pytest.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /www/wwwroot/pytest/; #项目路径
}
location /static/ {
alias /www/wwwroot/pytest/static/; #静态资源路径
}
(2)修改uwsgi文件
可以再python项目管理器里修改,修改前要暂停运行,修改完再重启。
添加项目时,会自动生成配置文件。只需要修改其中的:
http = 0.0.0.0:1022
,改为
socket = 127.0.0.1:1022
其他可以参考:
(1)
#添加配置
[uwsgi]
#配置和nginx接的socket接
socket=127.0.0.1:1022
#配置项目所在目录
chdir=/www/wwwroot/pytest/
#配置wsgi.py接口文件路径
wsgi-file=pytest/wsgi.py
#配置进程数
processes=4
#配置每个进程的线程数
threads=2
#配置管理主程
master=True
#配置存放主程的文件
pidfile=uwsgi.pid
#配置dump日志
daemonize=uwsgi.log
(2)
[uwsgi]
master = true
processes = 1
threads = 2
chdir = /www/wwwroot/pytest
wsgi-file= /www/wwwroot/pytest/pytest/
socket = 127.0.0.1:1022
logto = /www/wwwroot/pytest/logs/error.log
chmod-socket = 660
vacuum = true
master = true
max-requests = 1000
9. 静态文件配置
settings中加入一行:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_ROOT 文件夹 是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来
网站目录下运行下面命令
python manage.py collectstatic
上面命令收集全部静态文件到网站根目录的static文件夹中。
10. 访问测试
到这里访问域名就可以正常访问django项目了,大功告成!如果还有异常,多看日志文件。