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' # 端口号
}
}
1.4 添加网站
1.左侧的网站添加新的网站,点击添加站点。
2.前面的域名可以随便设置,然后设置访问的 公网IP + 端口
3.默认80端口,添加完端口后记得去阿里云或腾讯云开发对应的安全组端口
4.双击根目录,上传项目下的网站数据
5.先把默认的的404.html和404.html文件删除,然后点击上传。项目下的所有文件
6.上传python模块包列表
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服务信息,都需要重新启动项目。
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目录在项目下
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+端口