女子世界杯_世界杯今日赛事 - fdrwxy.com SPACE


微信小程序开发完成后,如何部署上线是许多开发者面临的第一个挑战。本文将详细介绍一个典型的微信小程序项目(前端 + SpringBoot 后端 + PostgreSQL 数据库)从服务器环境准备到最终发布上线的完整流程。

项目架构本文以 miniprogram-demo 项目为例,项目结构如下:

1234567891011miniprogram-demo/├── miniprogram/ # 微信小程序前端│ ├── app.js # 小程序入口│ ├── app.json # 小程序配置│ ├── pages/ # 页面目录│ └── utils/ # 工具类├── backend/ # SpringBoot 后端│ ├── src/│ └── pom.xml└── docs/ └── sql/ # 数据库初始化脚本

技术栈:

前端:微信小程序原生开发

后端:SpringBoot 2.7 + MyBatis-Plus

数据库:PostgreSQL

部署:Nginx + HTTPS

第一部分:服务器环境准备1. 确认服务器配置部署微信小程序需要以下环境:

Java 11+(推荐 JDK 17)

PostgreSQL 12+

Nginx(用于反向代理和 HTTPS)

已备案的域名(微信强制要求)

检查已安装的组件:

123java -versionpsql --versionnginx -v

2. 安装缺失组件Ubuntu/Debian 系统:

12sudo apt updatesudo apt install openjdk-17-jdk postgresql nginx -y

CentOS/RHEL 系统:

1sudo yum install java-17-openjdk postgresql-server nginx -y

第二部分:数据库初始化3. 创建数据库和用户登录 PostgreSQL:

1sudo -u postgres psql

执行以下 SQL 命令:

1234567891011-- 创建数据库用户CREATE USER demo WITH PASSWORD 'your_secure_password';-- 创建数据库CREATE DATABASE demo_db OWNER demo;-- 授权GRANT ALL PRIVILEGES ON DATABASE demo_db TO demo;-- 退出\q

4. 初始化数据库表结构项目使用了 Liquibase 进行数据库版本管理,启动应用时会自动创建表结构。如果需要手动初始化:

1psql -U demo -d demo_db -f docs/sql/init.sql

第三部分:后端部署5. 配置生产环境重要提示:生产环境的配置文件不要提交到 Git,避免泄露敏感信息。

在服务器上创建配置目录:

1mkdir -p /opt/demo/config

创建生产环境配置文件 /opt/demo/config/application.yml:

12345678910111213141516171819202122232425262728293031323334server: port: 8080spring: datasource: url: jdbc:postgresql://localhost:5432/demo_db username: demo password: your_secure_password driver-class-name: org.postgresql.Driver hikari: minimum-idle: 5 maximum-pool-size: 10 connection-timeout: 30000 liquibase: enabled: true change-log: classpath:db/changelog-master.xml drop-first: falsemybatis-plus: mapper-locations: classpath*:/mapper/**/*.xml type-aliases-package: com.demo.entitywechat: appid: your_wechat_appid secret: your_wechat_secret code2session-url: https://api.weixin.qq.com/sns/jscode2sessionjwt: secret: generate_a_complex_random_secret_key_here expiration: 604800000 # 7天logging: level: com.demo: info

关键配置项说明:

wechat.appid 和 wechat.secret:在微信小程序后台获取

jwt.secret:生成一个复杂的随机密钥

生产环境日志级别改为 info,去掉调试输出

6. 编译打包在本地开发环境编译:

12cd backendmvn clean package -DskipTests

打包完成后,JAR 文件位于:backend/target/miniprogram-demo-1.0.0-SNAPSHOT.jar

7. 上传到服务器使用 scp 命令上传文件:

12345# 上传 JAR 包scp backend/target/miniprogram-demo-1.0.0-SNAPSHOT.jar user@server:/opt/demo/# 上传配置文件scp /opt/demo/config/application.yml user@server:/opt/demo/config/

8. 创建系统服务(推荐)为了让后端服务开机自启并支持崩溃自动重启,创建 systemd 服务:

1sudo vim /etc/systemd/system/demo.service

写入以下内容:

12345678910111213[Unit]Description=Demo Backend ServiceAfter=postgresql.service[Service]User=your_userWorkingDirectory=/opt/demoExecStart=/usr/bin/java -jar /opt/demo/miniprogram-demo-1.0.0-SNAPSHOT.jar --spring.config.location=/opt/demo/config/application.ymlRestart=alwaysRestartSec=10[Install]WantedBy=multi-user.target

启动服务:

1234sudo systemctl daemon-reloadsudo systemctl enable demo # 开机自启sudo systemctl start demo # 启动服务sudo systemctl status demo # 查看状态

常用管理命令:

123sudo systemctl stop demo # 停止服务sudo systemctl restart demo # 重启服务journalctl -u demo -f # 查看实时日志

第四部分:配置 HTTPS微信小程序强制要求后端接口必须使用 HTTPS,这一步至关重要。

9. 申请 SSL 证书方式一:使用 Let’s Encrypt(免费,推荐)

12345# 安装 certbotsudo apt install certbot python3-certbot-nginx# 申请证书并自动配置 Nginxsudo certbot --nginx -d your-domain.com

方式二:使用已有证书

如果已有 SSL 证书,将其放到服务器指定位置:

123sudo mkdir -p /etc/ssl/certssudo mkdir -p /etc/ssl/private# 将证书文件复制到上述目录

10. 配置 Nginx 反向代理创建 Nginx 配置文件:

1sudo vim /etc/nginx/sites-available/demo

写入以下内容:

123456789101112131415161718192021222324252627282930313233# HTTPS 配置server { listen 443 ssl; server_name your-domain.com; ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem; # SSL 优化 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 超时配置 proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; }}# HTTP 重定向到 HTTPSserver { listen 80; server_name your-domain.com; return 301 https://$host$request_uri;}

启用配置并重启 Nginx:

123sudo ln -s /etc/nginx/sites-available/demo /etc/nginx/sites-enabled/sudo nginx -t # 测试配置是否正确sudo systemctl reload nginx

11. 验证后端接口1curl https://your-domain.com/api/user/profile

应该返回 JSON 响应(未登录会返回错误码,说明后端正常运行)。

第五部分:微信小程序配置12. 修改小程序后端地址编辑 miniprogram/app.js,将 baseUrl 改为生产环境域名:

12345678App({ globalData: { baseUrl: 'https://your-domain.com', // 改为 HTTPS 域名 token: '', userInfo: null }, // ... 其他代码});

注意:小程序正式环境必须使用 HTTPS,不能使用 HTTP 或 IP 地址。

13. 配置服务器域名登录 微信公众平台,进入:

开发管理 → 开发设置 → 服务器域名

在 request 合法域名 中添加:https://your-domain.com

重要提示:

域名必须已完成 ICP 备案

域名必须支持 HTTPS

配置后需要等待几分钟生效

14. 获取微信小程序 AppID 和 Secret在微信公众平台:

开发管理 → 开发设置 → 开发者ID

复制 AppID 和 AppSecret(Secret 只显示一次,务必保存)

将这两个值填入后端配置文件:

123wechat: appid: wx1234567890abcdef secret: your_appsecret_here

然后重启后端服务:

1sudo systemctl restart demo

第六部分:小程序发布15. 使用微信开发者工具上传

打开微信开发者工具

下载地址:微信开发者工具

导入项目

选择 miniprogram/ 目录

填入正确的 AppID

本地测试

点击「编译」按钮

在模拟器中测试所有功能

使用「真机调试」在手机上测试

上传代码

点击右上角「上传」按钮

填写版本号(如 1.0.0)

填写版本说明

16. 提交审核并发布登录微信公众平台:

进入 版本管理

找到刚上传的「开发版本」

点击「提交审核」

填写审核说明(功能介绍、测试账号等)

等待审核(通常 1-3 个工作日)

审核通过后,点击「发布」

第七部分:验证清单发布前请逐项检查:

PostgreSQL 正常运行,数据库可连接

后端服务启动正常(systemctl status demo)

HTTPS 可访问(curl https://your-domain.com/)

微信后台已配置合法域名

小程序 baseUrl 已改为 HTTPS 域名

AppID 和 Secret 已正确填写

本地测试功能正常

真机测试功能正常

小程序已上传、审核通过并发布

常见问题解答Q1: 小程序真机调试报 “不在以下 request 合法域名列表中”解决方法:登录微信公众平台 → 开发管理 → 开发设置 → 服务器域名,添加你的域名。配置后需要等待几分钟生效。

Q2: 后端启动报数据库连接失败排查步骤:

检查 PostgreSQL 是否运行:sudo systemctl status postgresql

检查数据库用户名密码是否正确

检查数据库是否已创建:psql -U postgres -l | grep demo_db

检查数据库连接 URL 是否正确

Q3: 小程序调用 wx.getUserProfile 报错原因:该接口在 2022 年后已被废弃。

解决方法:改用「头像昵称填写组件」,参考 微信官方文档。

Q4: 域名没有备案解决方案:

通过域名服务商提交备案申请

备案审核通常需要 7-20 个工作日

备案期间可以先使用测试号进行开发调试

Q5: 服务器内存不足(2GB 小型服务器)优化建议:

PostgreSQL + Java 大约需要 800MB-1.2GB 内存

配置 Swap 空间防止 OOM:12345sudo fallocate -l 2G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfileecho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

调整 JVM 内存参数:在启动命令中添加 -Xmx512m -Xms256m

Q6: HTTPS 证书过期解决方法:Let’s Encrypt 证书有效期为 90 天,需要定期续期:

12sudo certbot renew --dry-run # 测试续期sudo certbot renew # 实际续期

建议设置定时任务自动续期:

123sudo crontab -e# 添加以下行(每天凌晨 3 点检查续期)0 3 * * * certbot renew --quiet && systemctl reload nginx

总结微信小程序的部署涉及多个环节:服务器环境搭建、数据库配置、后端部署、HTTPS 配置、小程序配置和最终发布。整个流程看似复杂,但只要按步骤逐一完成,就能顺利上线。

关键要点:

域名必须已备案且支持 HTTPS

生产环境配置要独立管理,不要提交到 Git

使用 systemd 管理服务,实现开机自启和崩溃重启

小程序发布前务必进行充分的真机测试

定期续期 SSL 证书,确保服务稳定

希望本文能帮助你顺利完成微信小程序的部署上线!如果遇到问题,欢迎在评论区交流讨论。

相关文章推荐:

Spring Security 方法级权限控制详解

PostgreSQL 外部表性能优化指南

MAT JVM 内存分析工具使用教程

为什么很多女人喜欢被男人强吻?揭秘背后的秘密
快手怎么样才能直播唱歌

友情链接