基于若依开发的微信小程序部署到阿里云需要哪些步骤?

将基于若依(RuoYi)开发的微信小程序部署到阿里云,需要完成后端服务部署小程序云开发配置(如需)以及前端/小程序端发布三个核心环节。若依通常包含 Vue 前端、Spring Boot 后端和 MyBatis-Plus 数据库,而微信小程序则需要独立编译上传。

以下是详细的实施步骤:

第一阶段:准备阿里云资源与环境

在开始之前,你需要在阿里云控制台购买并配置以下基础资源:

  1. 云服务器 (ECS)

    • 选择 CentOS 7.9 或 Ubuntu 20.04+ 系统。
    • 配置建议:至少 2 核 CPU,4GB 内存(若依后端 + 数据库 + Nginx 需占用一定资源)。
    • 安全组配置:放行必要端口(如 80, 443 用于 Web/Nginx,3306 仅限内网访问,Java 端口8080 仅对特定 IP 开放或配合 Nginx 反向X_X)。
  2. 云数据库 (RDS MySQL)

    • 强烈建议使用阿里云 RDS MySQL 而非本地安装,以获得更好的稳定性和备份能力。
    • 创建实例后,获取连接地址、账号和密码。
    • 在 RDS 控制台的“白名单”中,添加你 ECS 服务器的内网 IP(如果走内网连接)或公网 IP(如果走公网,不推荐)。
  3. 域名与 SSL 证书

    • 购买一个域名并在阿里云备案(国内服务器必须备案才能开通 80/443 端口)。
    • 申请免费或付费的 SSL 证书(Let’s Encrypt 或阿里云免费证书),用于 HTTPS 加密(微信强制要求 HTTPS)。

第二阶段:后端服务部署 (Spring Boot)

这是若依框架的核心部分。

  1. 环境安装
    登录 ECS,安装 JDK、Maven、Git 等工具:

    # 示例:CentOS
    yum install -y java-1.8.0-openjdk-devel maven git
  2. 代码迁移

    • 将你的若依后端项目代码(ruoyi-adminruoyi-common 等模块)上传至服务器。
    • 修改 application.yml 配置文件:
      • spring.datasource.url:改为阿里云 RDS 的连接地址。
      • server.port:默认 8080,后续可通过 Nginx 转发。
      • mybatis.mapper-locations:确保路径正确。
      • 关键:移除本地开发时的调试日志,开启生产模式。
  3. 构建与启动
    在服务器上执行 Maven 打包:

    mvn clean package -DskipTests

    生成 target/ruoyi-admin.jar 后,使用 nohup 后台运行:

    nohup java -jar ruoyi-admin.jar > app.log 2>&1 &

    验证:通过 curl http://localhost:8080 检查后端是否响应。


第三阶段:前端与 Nginx 反向X_X

若依的前端通常是 Vue 项目,需要编译为静态文件并通过 Nginx 托管。

  1. 编译前端
    在本地开发环境(或 CI/CD 流水线)中,进入若依前端目录:

    npm run build:prod

    生成的 dist 文件夹即为生产包。

  2. 上传并配置 Nginx

    • dist 目录上传到 ECS 指定目录(如 /usr/local/nginx/html/ruoyi)。
    • 安装 Nginx (yum install nginx) 并编写配置文件 /etc/nginx/conf.d/ruoyi.conf
    server {
        listen 80;
        server_name your-domain.com; # 替换为你的域名
    
        location / {
            root /usr/local/nginx/html/ruoyi;
            index index.html;
            try_files $uri $uri/ /index.html; # SPA 路由支持
        }
    
        # 反向X_X后端 API
        location /app/ {
            proxy_pass http://127.0.0.1:8080/; # 指向 Spring Boot 端口
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
            # 解决 WebSocket 问题(若依有实时通知功能)
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    
        # 强制 HTTPS (可选,需先配置 SSL)
        # return 301 https://$host$request_uri;
    }
  3. 启动 Nginx

    nginx -t && systemctl start nginx

第四阶段:微信小程序配置与发布

这一步是将小程序本身部署到微信生态,与阿里云服务器交互。

  1. 修改小程序配置
    打开若依小程序项目中的 project.config.jsonmanifest.json(视具体版本而定):

    • 确认 appid 已填写。
    • 重要:找到请求接口的根路径(通常在 utils/request.jsconfig/index.js 中),将其从 http://localhost:8080 修改为 https://your-domain.com/app
    • 校验域名:确保该域名已在微信公众平台 -> 开发管理 -> 开发设置 -> 服务器域名中配置。
      • 请求合法域名:https://your-domain.com
      • 上传合法域名:同上(如果是云开发则不需要)。
  2. SSL 证书配置
    微信强制要求接口必须是 HTTPS。

    • 在阿里云 SSL 控制台下载证书(Nginx 格式 .crt.key)。
    • 将证书放入服务器,修改 Nginx 配置启用 HTTPS:
      server {
      listen 443 ssl;
      server_name your-domain.com;
      ssl_certificate /path/to/cert.pem;
      ssl_certificate_key /path/to/key.key;
      # ... 其他配置同上
      }

      注意:需在阿里云安全组放行 443 端口。

  3. 上传与发布

    • 打开微信开发者工具,点击“上传”。
    • 填写版本号、备注,提交审核。
    • 在微信公众平台后台等待审核通过后,点击“发布”。

第五阶段:数据库初始化

  1. 登录阿里云 RDS 控制台,创建若依对应的数据库(如 ry-vue)。
  2. 导入若依提供的 SQL 脚本(通常在 sql/ry_*.sql 文件中)。
    • 可以使用 DMS 数据库管理工具直接导入,或通过命令行 mysql -h <rds-ip> -u <user> -p < ry.sql
  3. 若依默认管理员账号通常为 admin / admin123(具体见官方文档),请确保登录正常。

总结与注意事项

环节 关键点 常见坑
网络 安全组策略 忘记放行 443 导致小程序无法联网;忘记放行 8080 导致 Nginx 转发失败。
HTTPS 证书有效期 证书过期会导致小程序接口报错;本地测试时不要用自签名证书。
跨域 Nginx 配置 若未配置反向X_X,前端直接请求后端会报 CORS 错误(虽然后台有注解,但最佳实践是 Nginx 统一处理)。
WebSocket 协议升级 若依涉及实时消息推送,Nginx 必须配置 Upgrade 头,否则连接会断开。
域名备案 ICP 备案 国内服务器未备案会导致 80/443 端口被阻断,无法访问。

按照以上步骤操作,即可实现从本地开发到阿里云生产环境的完整部署。如果在过程中遇到具体的报错(如 Java 内存溢出、Nginx 502 错误),可以进一步提供日志进行排查。