宝塔部署Django项目-避坑必看

1.在linux\windoes机器上已经安装宝塔,浏览器登录宝塔管理页面

1.1打包模块

1.将本地计算机的项目下的模块打包 
python -m pip freeze > requirements.txt

1.2 配置settings,设置静态文件的位置

DEBUG = True
ALLOWED_HOSTS = ['121.xxx']   ## 公网IP
STATIC_URL = '/static/'
# STATICFILES_DIRS = [
# os.path.join(BASE_DIR, "static")
# ]
STATIC_ROOT = os.path.join(BASE_DIR, "static") 

1.3 引入数据库

#步骤:先创建数据库,然后输入xxx 用户名, root 密码(这其实可以认为是一个变量,因为顶部的 root密码 才是真实的数据库密码)
1.宝塔管理界面 --> 数据库 --> 添加数据库 --> 填写数据库名 --> 用户名
2.修改settings.py文件
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'integral',   # 数据库名字
        'USER': 'root',           # 用户名
        'PASSWORD': '填写的是root密码',     # 密码 填写的是root密码
        'HOST': 'localhost',      # 本地主机
        'PORT': '3306'            # 端口号
    }
}

宝塔部署Django项目-避坑必看_第1张图片
1.4 添加网站

1.左侧的网站添加新的网站,点击添加站点。
2.前面的域名可以随便设置,然后设置访问的 公网IP + 端口
3.默认80端口,添加完端口后记得去阿里云或腾讯云开发对应的安全组端口
4.双击根目录,上传项目下的网站数据
5.先把默认的的404.html和404.html文件删除,然后点击上传。项目下的所有文件
6.上传python模块包列表

宝塔部署Django项目-避坑必看_第2张图片
宝塔部署Django项目-避坑必看_第3张图片

7.- uwsgi启动服务
在项目下新建一个uwsgi.ini空白文件,添加下面的内容,
注意:放行 阿里云和宝塔的端口 3234 (自定义,内网连接端口)
这个是nginx和uwsgi启动服务的套接字连接端口
#添加配置选择
[uwsgi]
#配置和nginx连接的socket连接
socket=127.0.0.1:3234
#配置项目路径,项目的所在目录
chdir=/www/wwwroot/InteGral/
#配置wsgi接口模块文件路径,也就是wsgi.py这个文件所在的目录
wsgi-file=WasteSorting/wsgi.py
#配置启动的进程数
processes=4
#配置每个进程的线程数
threads=2
#配置启动管理主进程
master=True
#设置buffer(4k)来接收每个请求的头信息
buffer-size=8192 
#配置存放主进程的进程号文件
pidfile=uwsgi.pid
#配置dump日志记录
daemonize=/www/wwwroot/InteGral/uwsgi.log

8.然后,连接nginx,修改网站配置
网站--> 选中当前项目 --> 设置 ---> 配置文件
server {
        listen       81;
        server_name  公网IP; # 公网IP
        location / {
            include /www/server/nginx/conf/uwsgi_params; # nginx uwsgi_params文件所在目录
            uwsgi_pass 127.0.0.1:3234;  #端口要和uwsgi里配置的一样
            uwsgi_param UWSGI_SCRIPT WasteSorting.wsgi;  #wsgi.py所在的目录名+.wsgi
            uwsgi_param UWSGI_CHDIR /www/wwwroot/InteGral/; #项目路径
        }
       location /static/ {
            alias /www/wwwroot/InteGral/static/; #静态资源路径
      }
}

2. 管理项目

1.在宝塔管理页面 --> 软件商店 --> python项目管理器 --> 下载安装
2.添加项目
3.注意: MD5命名的文件名是在python管理器添加项目时生成的文件名,里面保存着模块。 项目名+ _venv
4.任何处理uwsgi服务信息,都需要重新启动项目。

宝塔部署Django项目-避坑必看_第4张图片
宝塔部署Django项目-避坑必看_第5张图片

3.样式处理

1.如果在第一步没有设置好settings文件,则需要进行更新 (并且需要 在nginx添加 外网访问的静态文件 location / static/ { ... }),, 测试连通性也依然可以使用php文件。
除了在settings文件添加 
STATIC_ROOT = os.path.join(BASE_DIR, "static")

2.执行命令需要输入绝对路径,采集静态资源,结果会保存在项目下的static目录,而不是应用里面的static目录,所以它只是一个收集的作用。
/www/wwwroot/InteGral/5f21ac4f801b861a16b742c78cb1e560_venv/bin/python manage.py collectstatic   

3.执行完成之后生成的static目录在项目下

宝塔部署Django项目-避坑必看_第6张图片

4.Nginx 配置静态文件

server {
        listen       81;
        server_name  公网IP;
        location / {
            include /www/server/nginx/conf/uwsgi_params;
            uwsgi_pass 127.0.0.1:8997;  #端口要和uwsgi里配置的一样
            uwsgi_param UWSGI_SCRIPT WasteSorting.wsgi;  #wsgi.py所在的目录名+.wsgi
            uwsgi_param UWSGI_CHDIR /www/wwwroot/InteGral/; #项目路径
        }
       location /static/ {
            alias /www/wwwroot/InteGral/static/; #静态资源路径 指定生成的目录位置
 }

5. 查看uwsgi.log日志

1.可以看到uwsgi 运行的日志
[root@VM-4-16-centos InteGral]# tail -f uwsgi.log 

2.可以看到 项目在控制台输出的信息

6.浏览器访问

公网IP+端口

你可能感兴趣的:(linux,django,python,后端)