day17-微信小程序-上线

今日内容

image-20260823161038310

1 服务器安装nginx

# 1 nginx软件:反向代理软件
	-1 请求转发:把用户的请求--》转发给django项目
    -2 代理静态资源:直接访问图片,js,css--》nginx速度特别快
    	-飞机大战,就是利用了这个特性:js,css,html--》静态文件
    -3 负载均衡
    	-可以提高项目的并发人数
        -1000来个用户同时使用没问题---》分流
        
    -明白:请求发送到nginx上后---》转发给 django项目
    -为什么要有转发:因为nginx性能高--》可以抗住特别多用户访问--》如果没有它,用户访问量大,项目会崩
    	理发店:同时理发5个人
        500个人--》nginx---》慢慢的5个,5个的进到理发店中理发
# 1 前往用户根目录
cd 

# 2 下载nginx 1.28.0
wget https://nginx.org/download/nginx-1.28.0.tar.gz
#3 解压安装包
tar -xf nginx-1.28.0.tar.gz

#4 进入目标文件
cd nginx-1.28.0

# 5 配置安装路径:/usr/local/nginx
# 安装 PCRE 开发包的名称是 pcre-devel,支持https访问
#zlib-devel:用于 gzip 压缩模块。openssl-devel:用于 SSL/TLS 模块(如启用 HTTPS) gcc 和 make:编译工具链
dnf install -y pcre-devel gcc make zlib-devel openssl-devel
./configure --prefix=/usr/local/nginx --with-http_ssl_module
#6 编译并安装
make &&  make install

# 7 建立软连接:终端命令 nginx
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx 

#8 删除安装包与文件:
cd ~
rm -rf nginx-1.28.0
rm -rf nginx-1.28.0.tar.xz


########### 到此就装好了######################
# 部署飞机大战---》把消消乐源码--》放在了/usr/local/nginx/html 目录下,重启nginx,浏览器访问,就能看到了



# 测试Nginx环境,服务器运行nginx,本地访问服务器ip
nginx   # 启动nginx服务,监听80端口----》公网ip 80 端口就能看到页面了
服务器绑定的域名 或 ip:80

# 静态文件放的路径
/usr/local/nginx/html

# 查看进程
ps aux | grep nginx


# 关闭和启动
关闭:nginx -s stop 
启动: nginx # 敲了这个命令--》浏览器中看到如下图

image-20260823201313477

2 安装mysql8

### 1 官方yum源
https://dev.mysql.com/downloads/repo/yum/

### 2 下载对应版本mysql源到本地,如果系统是centos9,这里选择el9版本
# no architecture的缩写,说明这个包可以在各个不同的cpu上使用
我们选择  mysql84-community-release-el9-1.noarch.rpm

### 3 或者直接来到:https://repo.mysql.com/
找到相应版本下载,我们下载
https://dev.mysql.com/downloads/file/?id=528548
#############从这里开始执行###############
### 4 下载rpm包--->从这里开始
wget https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm

### 5 安装rpm包
dnf install -y mysql84-community-release-el9-1.noarch.rpm

### 6 开始安装
dnf install -y mysql-community-server --nogpgcheck  # 会自动把客户端装上

### 7 启动,查看状态
systemctl start mysqld
systemctl status mysqld

### 8 查看默认密码并登录
grep "password" /var/log/mysqld.log     #     faP%:aShP5nL

### 9 修改密码
mysql -uroot -p
# SELECT user, host, plugin FROM mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lqz12345?';

#10 创建用户[企业中都是用其他用户操作--root用户权限太高了,泄露后很危险]--》创建lqz用户,操作mysql,不使用root用户操作mysql
CREATE USER 'lqz'@'localhost' IDENTIFIED BY 'Lqz12345?';
CREATE USER 'lqz'@'%' IDENTIFIED BY 'Lqz12345?';
GRANT ALL PRIVILEGES ON *.* TO 'lqz'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'lqz'@'%' WITH GRANT OPTION;
#### 创建一个lqz用户,密码是:Lqz12345?,以后用这个用户登录和操作mysql

quit # 退出

### 11 查看mysql版本
mysql -V

# 12 远程链接
win机器---》连阿里云机器
Navicate:以这个为例

# 13 如果连不上,打开3306的安全组
	-正常只要开3306即可
    -但是我全开了端口
    -后续不用再开了

image-20260703204834222

image-20260819125854974

2.1 创建数据库

# 1 数据库名字 :navicae创建--->云服务器的mysql数据库中创建的,不是本地
	shuziren
    
# 2 安装依赖--django项目链接数据库需要
dnf install python3-devel mysql-devel --nogpgcheck -y
pip3.13 install mysqlclient

2.2 Navicate连不上云服务器问题

# 1 安全组端口没开---》防火墙
	3306没开--》不允许外部通过3306访问
# 2 安全组打开几个端口--》我全开了
	-80 已经开了
    -3306
    -8000
    -8888
    -443
    如果同学没全打开,就最起码把这五个打开

3 安装uwsgi

# 1 uwsig 是运行django的服务器[软件]
	我们后端用django写的
    
# 2 原来本地,没有装这个东西,也可以运行djagno项目?
	-对,因为之前本地只是测试,对性能要求不高,只能一个人用,django自带服务器就够了
    -现在我们上线,要并发很多人使用--》必须要用uwsig,高性能django服务器--》并发更多的用户 
#1 安装uwsgi 
dnf install -y python3-devel gcc libxml2-devel
pip3.13 install uwsgi
ln -s /usr/local/python313/bin/uwsgi /usr/bin/uwsgi  # 以后在任意路径下敲uwsgi都能找到

# 2 敲 uwsgi  有反应,就是装好了

4 上传后端项目到服务器

4.1 uwsgi配置文件

# 1 uwsgi运行django项目,需要有配置文件
    ##  我们要用uwsgi运行django了,不是本地测试了,所以要有个配置文件
    ##  shuziren.ini  放在后端项目根目录下
[uwsgi]
socket = 127.0.0.1:8000
chdir = /home/pro/shuziren_api/
wsgi-file = config.wsgi
processes = 4
threads = 2
master = true
daemonize = uwsgi.log

image-20260823205236608

4.2 修改配置文件

############ settings.py

# 1 上线,不用调试模式,开发用调试模式
DEBUG = False
# 2 运行部署的服务器ip地址,运行所有
ALLOWED_HOSTS = ['*']


# 如果你们有 .env,按老师的修改,如果没有,按下面的修改settings.py文件,修改这个
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'shuziren',
        'USER': 'lqz',
        'PASSWORD': 'Lqz12345?',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'OPTIONS': {
            'charset': 'utf8mb4',
        },
    }
}




# 3 数据库--》连阿里云上的mysql了--->.env
DEBUG=True
SECRET_KEY=django-insecure-!a@b#c$d%^&*key_change_in_production_2026

# 数据库
DB_NAME=shuziren
DB_USER=lqz
DB_PASSWORD=Lqz12345?
DB_HOST=127.0.0.1
DB_PORT=3306

# Coze 配置【正常不用改】
COZE_API_BASE=https://api.coze.cn
COZE_WORKFLOW_ID=7669850629418647590
COZE_TOKEN=pat_v3bcwP3HOJxuUr7a6VWau4HEbFBMwFNzlHvy6vhQ3URBIaxMBFZOpDBuFUrEYBfE
COZE_POLL_TIMEOUT=15

image-20260823205416171

image-20260823205519680

4.3 打包上传

#### 必须是zip,不能rar,因为linux不能解压rar文件############
# 1 压缩后端项目成zip
# 2 放到桌面上:shuziren_api.zip

# 3 上传到阿里云服务器的固定位置/home/pro/
	mkdir /home/pro
    使用Finallshell上传zip  --》/home/pro/shuziren_api.zip
    
# 4 解压
	dnf install unzip -y # 安装解压软件
    cd /home/pro
    unzip shuziren_api.zip# 解压
	/home/pro/shuziren_api	# 文件夹中就是代码了

image-20260823210711568

4.4 服务端安装依赖

# 1 本地运行django项目,Codex帮我们装好了依赖了

# 2 服务器上没有装呢--》安装
	cd /home/pro/shuziren_api/
	pip3.13 install -r requirements.txt
    
# 3 检测一下是否装好
 pip3.13 list

5 nginx配置

5.1 uwsgi运行Django项目

# 1 启动uwsgi:注意目录,项目目录下
cd /home/pro/shuziren_api
uwsgi shuziren.ini  # django项目跑在 8000端口了

# 2 查看--》django项目运行了--》等同于本地  python manage.py runserver 127.0.0.1:8000
ps aux |grep uwsgi

# 3 停止[我们不停]
pkill -9 uwsgi

image-20260823212933936

5.2 请求通过nginx转发给uwsgi【这个配置文件只能用老师的项目】

# 1 配置nginx转发
cd /usr/local/nginx/conf
mv nginx.conf nginx.conf.bak  # 把原来的配置文件备份一下
vi nginx.conf  # 创建一个新的
# 新增的server
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
	server {
        listen 8080;
        server_name  127.0.0.1;
        charset utf-8;
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
            uwsgi_param UWSGI_SCRIPT config.wsgi; 
            uwsgi_param UWSGI_CHDIR /home/pro/shuziren_api/;
            }
        }
}


# 2 重启nginx 
nginx -s reload # 如果报错就直接执行  nginx 

# 3 如果之前没启动,直接
nginx

5.3 导入测试数据

# 1 把本地数据导入【本地当时开发的数据】
	-在本地的数据库上--》右键--》转储成sql--》选数据和结构
    -shuziren.sql
# 2 导入到服务器中
	-如果部署老师的项目,你们不需要导出--》直接导入项目中老师给的sql文件即可
# 3 以后我们的数据是从后台管理系统录入
	-增删查改数据,都ok

5.4 浏览器访问后台admin

# 1 浏览器访问:http://120.26.242.64:8080/admin
# 2 看到如下图,没问题
	-因为我们是正式上线,无法直接看到后台管理的月末

image-20260823214124346

6 配置admin访问

# 1 admin 没有样式

# 2 原因:
	uwsgi运行django项目,是不能访问到静态文件的--》之前本地测试环境是可以的[开启了debug=True]
    下面报错:向http://120.26.242.64:8080/static/admin/simpleui-x/elementui/theme-chalk/index.css 访问不到
    index.css是静态文件,访问不到
    
# 3 解决--》使用nginx转发静态文件

image-20260703213054721

# 1  django中收集静态资源,使用nginx代理
# settings.py中加入   把静态资源收集到这个文件夹下

# STATIC_ROOT = BASE_DIR / 'static'  # 这句话有了,不用动了 BASE_DIR:shuziren_api

# 2 项目根目录下创建
cd /home/pro/shuziren_api
mkdir static 

# 3 执行命令,收集静态问题---》把所有js,css图片,收集到staticfiles 文件夹下 

python3.13 manage.py collectstatic  # 收集完,文件夹下就有很多静态文件

# 4 上面我们nginx已经配置了代理静态文件

# 新增的配置静态文件
	vi /usr/local/nginx/conf/nginx.conf
	# 加入这两句---》把 nginx.conf 删除--》新建一个nginx.conf,粘贴进下面
      location /static {
            alias /home/pro/shuziren_api/static;
       }
      location /media {
            alias /home/pro/shuziren_api/media;
       }

 
 # 5 重启nginx
	nginx -s reload
    
# 6 用户名和密码
admin
lqz12345

image-20260823214752586

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
	server {
        listen 8080;
        server_name  127.0.0.1;
        charset utf-8;
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
            uwsgi_param UWSGI_SCRIPT config.wsgi; 
            uwsgi_param UWSGI_CHDIR /home/pro/shuziren_api/;
            }
        location /static {
            alias /home/pro/shuziren_api/static;
           }
        location /media {
             alias /home/pro/shuziren_api/media;
           }
        }
}

7 阿里云证书

# 1 目前我们部署在http上,微信小程序要求,必须是https的地址才可
	# 浏览器可以访问
	http://120.26.242.64:8080/admin/
    # 微信小程序访问不了
    
# 2 要部署https地址,需要使用证书
	-http+ssl证书= https---》几乎市面上所有都是https,因为安全
	-证书是花钱购买,有些免费的--》以阿里云免费证书为例--》有申请个数限制
    -阿里云,腾讯云,七牛云,都会卖证书--》不便宜
    
    
# 3  阿里云有免费的,一个只有90天
https://yundun.console.aliyun.com/?spm=5176.12818093_47.top-nav.23.57ea16d02gIoxM&p=cas#/certExtend/free/cn-hangzhou

# 4 购买证书


# 5 创建证书
	-输入域名:我的域名:  www.liuqingzheng.top 需要购买
# 6 更多--下载--》下载nginx证书

# 7 解压后有两个文件
	xx.key
    xx.pem

# 8 把这俩东西传到服务器:服务器创建cert文件夹
	# /usr/local/nginx/cert/
    cd /usr/local/nginx/
    mkdir cert

    
# 9 修改nginx配置--》nginx.conf 文件
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    client_max_body_size 20M;
	server {
    	listen 443 ssl;
     	ssl_certificate /usr/local/nginx/cert/www.liuqingzheng.top.pem;
     	ssl_certificate_key /usr/local/nginx/cert/www.liuqingzheng.top.key;
        server_name  liuqingzheng.top;
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
            uwsgi_param UWSGI_SCRIPT config.wsgi;
            uwsgi_param UWSGI_CHDIR /home/pro/shuziren_api/;
            }

       location /static {
            alias /home/pro/shuziren_api/static;
       }
      location /media {
            alias /home/pro/shuziren_api/media;
       }
    }
}

# 10 重启Nginx
nginx -s reload

# 11 访问
https://120.26.242.64/admin

image-20260507224307904

image-20260507224455038

image-20260819132826814

image-20260819132910295

image-20260819132949939

image-20260507224531896

image-20260819133106045

image-20251221225704783

image-20251221225731944

image-20260507194312894

image-20260507224921250

image-20260507225050540

8 域名-备案-域名解析[先购买]

# 1 购买的域名
	www.xxoo.com # 都是买的,如果别人没买,你可以买
    www.jd.com--->之前京东域名是:www.360buy.com-->后来花了几千万从个人手上买了 www.jd.com
    www.liuqingzheng.top # 我的域名
    
# 2 地址
https://dc.console.aliyun.com/next/index?spm=5176.2020520154.console-base_search-panel.dtab-product_domain.2c1bAU57AU5717#/overview
    
# 3 com和cn的贵,top的便宜
https://wanwang.aliyun.com/domain/searchresult/?keyword=liuqingzheng&suffix=

# 4 购买后就是你们自己的域名
www.liuqingzheng.top

# 5 工信部备案--》阿里云会协助我们备案
	-一个月时间,提交材料--》工信部审核
    
# 6 配置域名解析
https://dnsnext.console.aliyun.com/authoritative?spm=5176.100251.console-base_search-panel.dtab-product_dns.52834f15NF2R4V&scm=20140722.S_dns._.ID_dns-RL_%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90-LOC_console_console-OR_ser-V_4-P0_0
    
# 7 如下图,配置两个
    https://www.liuqingzheng.top
    https://liuqingzheng.top  
        
# 8 等10分钟访问: 进后台管理
https://liuqingzheng.top/admin

image-20260823221106918

image-20260823221417342

9 小程序上线

# 1 小程序后台
https://mp.weixin.qq.com/
 	管理--版本管理
    
    
#2  修改小程序地址
BASE_URL: 'https://liuqingzheng.top',


# 3 上传,设为体验版,配置体验成员--测试
	-上传完--版本管理就看到了
    

# 4 开发管理--》域名管理--》把我们的域名添加进去
	-如果不添加,我们使用我们小程序时,微信不允许访问:https://liuqingzheng.top
        
        
# 4 备案,提交审核,等待审核通过
	-微信协助你在工信部备案
    	-微信小程序也要备案,上面备案的是网站【域名】
    -小程序备案了后,每次发新版本,微信都会审核,审核公告,用户才能使用你的小程序   
# 5 所有用户就可以使用了
	根据名字搜索到,就可以用了
    
# 6  设为体验版,配置体验成员--测试
	-https://mp.weixin.qq.com/wxamp/wacodepage/getcodepage?token=19959889&lang=zh_CN
	-最多15个人,目前小程序不能被非体验人使用
    -只要不下线,可以一直体验

image-20260823221809521

image-20260823221940785

image-20260823222024087

image-20260823222145581

image-20260823222237946

posted @ 2026-09-07 21:11  凫弥  阅读(15)  评论(0)    收藏  举报