Skip to content

方案 A:宝塔混合部署(逐步操作)

给「服务器已经有宝塔、现场会点面板、我们 SSH 不进去」的客户。
本方案:宝塔负责 Nginx + MySQL 8 + Redis,Docker 只跑后端 yudao-server
空机、希望 MySQL/Redis 也进 Compose → 用 方案 B,不要跟本页混用。

打包说明见 如何打安装包。生产机只做「收包 → 装软件 → 上传 → 执行脚本」。


0. 这套方案长什么样

组件谁提供端口
网站入口宝塔 Nginx80(可改 HTTP_PORT
前端安装脚本拷到 /www/wwwroot/ruoyi-office/web路径 /web/
后端Docker 容器 ruoyi-yudao只监听 本机 127.0.0.1:48080
数据库宝塔软件商店 MySQL 8.03306
缓存宝塔软件商店 Redis6379

建议机器:≥ 4 核 8G 内存,磁盘 ≥ 80G,系统 CentOS 7 / Rocky / Ubuntu 均可(能装宝塔即可)。必须能上外网,否则软件商店和 Docker 拉基础镜像会失败。


1. 登录宝塔面板

  1. 用浏览器打开实施方提供的面板地址,一般是:

    https://服务器IP:面板端口/安全入口

    证书是自签的,Chrome 会显示「不安全」。点 高级 → 继续访问

  2. 用面板用户名、密码登录。若提示绑定手机 / 宝塔账号,可先 跳过 / 以后再说

  3. 安全入口写错会变成 nginx 的 404,看起来像网站挂了,其实只是入口不对:

安全入口错误时的 404

这时不要重装 Nginx。在服务器终端执行 bt default(或宝塔「面板设置」里看当前入口),用新地址打开。

  1. 登录成功后,左侧应能看到:首页、网站、数据库、Docker、文件、终端、软件商店

2. 软件商店:按顺序安装 4 个软件

打开左侧 软件商店。搜索名字,点安装。全部选稳定版,等绿色「运行中」。

2.1 Nginx

  1. 搜索 Nginx → 安装。实验室验证过 1.22 / 1.24 都可以。
  2. 装完在软件商店应显示运行中。首页「网站」旁边也会出现 Nginx 版本号。

2.2 MySQL 必须 8.0

  1. 搜索 MySQL → 安装时选 8.0.x
    不要装 5.7:本产品 schema 使用 utf8mb4_0900_ai_ci,5.7 导入会失败。
  2. 安装过程中或装完,宝塔会给出 root 密码。立刻记到记事本,后面要写进 .envMYSQL_ROOT_PASSWORD
  3. 若当时没抄下来:软件商店 → MySQL → 设置里可以改 root 密码。改完以新密码为准。

2.3 Redis

  1. 搜索 Redis → 安装。
  2. 打开 Redis 设置,看是否设置了密码:
    • 无密码(很多默认环境):.envREDIS_PASSWORD= 留空即可。
    • 有密码:把同一串写到 .envREDIS_PASSWORD

2.4 Docker(含 Compose)

  1. 搜索 Docker → 安装。装完应带 docker compose(新版)或 docker-compose
  2. 终端里执行下面命令,四行都要有输出:
bash
nginx -v
mysql -V          # 必须看到 8.0
docker version
docker compose version || docker-compose version

服务器在国内时,建议在 Docker 设置里配镜像加速(阿里云 / DaoCloud),否则后面 docker buildeclipse-temurin 会很慢或失败。


3. 拿到安装包并上传

  1. 如何打安装包 准备好 ruoyi-office-baota-日期 目录(或 zip)。
  2. 宝塔左侧 文件 → 进入 /opt/(没有就新建)。
  3. 上传 zip 后 解压,最终目录必须是:
text
/opt/ruoyi-office-pack/
  install.sh
  compose/
  sql/
  web/
  app/yudao-server.jar
  ...

目录名差一点也可以,后面 cd 以实际为准。磁盘至少留出 jar + 镜像 + 数据库 的空间(建议空闲 > 10G)。


4. 填写 compose/.env(方案 A 专用)

用宝塔文件管理打开 /opt/ruoyi-office-pack/compose/.env(没有就把 compose/.env.example 复制一份改名)。

DEPLOY_MODE=a 不要改成 b。

示例(密码请改成你自己的,不要用示例字面值上生产):

env
DEPLOY_MODE=a
SITE_HOST=192.168.1.10
HTTP_PORT=80

MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_DATABASE=ruoyi-office
MYSQL_USERNAME=ruoyi
MYSQL_PASSWORD=请改成业务库密码
MYSQL_ROOT_PASSWORD=请填宝塔MySQL的root密码

REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=

DRUID_USERNAME=admin
DRUID_PASSWORD=请改成监控台密码

JAVA_OPTS="-Xms1g -Xmx2g -Djava.security.egd=file:/dev/./urandom"
YUDAO_IMAGE_TAG=latest
怎么填
SITE_HOST浏览器访问这台机用的 IP 或域名,不要写 127.0.0.1
HTTP_PORT80 被其它网站占用就改成如 18080,访问带端口
MYSQL_ROOT_PASSWORD必须能登录宝塔 MySQL,否则脚本会误判「没装 MySQL 8」
MYSQL_PASSWORD脚本会创建用户 ruoyi 用的密码
REDIS_PASSWORDRedis 无密码就留空;不要随便填一个假密码
JAVA_OPTS整段加英文双引号,否则安装脚本 source .env 会把 -Xmx2g 当成命令执行失败

80 端口已被别的站点占用时:改 HTTP_PORT,并保证防火墙放行该端口。


5. 终端执行首装

宝塔左侧 终端(或 SSH),执行:

bash
cd /opt/ruoyi-office-pack
sed -i 's/\r$//' install.sh update.sh health.sh scripts/*.sh compose/.env
chmod +x install.sh update.sh health.sh scripts/*.sh
bash install.sh

Windows 打出来的脚本经常带 \r,不跑 sed 可能失败。install.sh 本身只是调用 scripts/install.sh,不要用 sh install.sh 换成 dash。

首次安装会做这些事(请耐心等,导 static_data 可能要几分钟):

  1. 检查 Docker、MySQL 8.0
  2. 把前端拷到 /www/wwwroot/ruoyi-office/web
  3. app/yudao-server.jar 在本机构建镜像 ruoyi-office:latest(要能拉取 eclipse-temurin:21-jre
  4. 启动容器 ruoyi-yudao(host 网络,访问本机 3306/6379)
  5. 创建数据库 ruoyi-office、导入 schema + 静态数据
  6. 把 Nginx 配置写到 /www/server/panel/vhost/nginx/ruoyi-office.conf 并 reload

成功时终端最后会打印:

text
访问: http://你的SITE_HOST/web/

默认登录账号(导入官方 static_data 后):admin,密码以交付清单为准;实验室演示常用 admin123。租户选 宇擎源码(或列表第一个)。


6. 在宝塔里怎么核对(容易看错的地方)

脚本不会在「网站 → PHP 项目」里点「添加站点」。所以 PHP 站点列表经常是空的,这不代表没装上

请按下面核对:

去哪看应该看到
文件/www/wwwroot/ruoyi-office/web/index.html
文件/www/server/panel/vhost/nginx/ruoyi-office.confserver_name 是你的 SITE_HOST/web//admin-api/
Docker → 容器(不是「应用商店 → 已安装」)容器名 ruoyi-yudao,状态 running / healthy
数据库 → MySQLruoyi-office(用户 ruoyi
浏览器http://SITE_HOST/web/

「Docker → 应用商店 → 已安装」是宝塔应用市场模板,我们没用它,空的正常。

用 IP 127.0.0.1 在服务器本机 curl /web/ 可能 404(宝塔另有 server_name 127.0.0.1 的状态页)。请用 Host 为 SITE_HOST 访问,或直接在办公电脑浏览器打开。


7. 浏览器验收

  1. 办公电脑打开:http://SITE_HOST/web/(hash 路由,登录页类似 /web/#/auth/login)。
  2. 选择租户 宇擎源码,用户名 admin,密码按交付清单。
  3. 应进入工作台,顶部有 OA / 人力 / 合同等模块:

方案 A 登录后工作台

  1. 再打开 用户管理,左侧组织树、右侧用户表应有数据(演示数据约几十条):

方案 A 用户管理

能进工作台但用户表全空:多半是 SQL 没导完或连错库。把 health.sh 输出发给实施方。


8. 以后更新(不毁库)

收到新的安装包(或只更新了 app/web/)后:

bash
cd /opt/ruoyi-office-pack
bash update.sh

只换镜像和前端,不会重建数据库。旧前端在 /www/wwwroot/ruoyi-office/web.bak

若包里带了 sql/04_incremental.sql,脚本不会自动执行,需确认后再手工导入。


9. 搞不定时发这些

bash
bash /opt/ruoyi-office/scripts/health.sh
docker ps
docker logs --tail 80 ruoyi-yudao

另外截图:软件商店里 Nginx / MySQL 8 / Redis / Docker 的运行状态、浏览器地址栏。

常见坑:

现象原因
安装报 MySQL 版本不对 / 连不上root 密码没写对,或装成了 5.7
source .env 失败、-Xmx2g 命令找不到JAVA_OPTS 没加引号
构建镜像一直卡住拉不了 eclipse-temurin,配 Docker 镜像加速
登录提示租户未传递页面先选租户;接口需要 tenant-id
Redis AUTH 失败无密码却填了空字符串环境变量;方案 A 的 compose 不要乱加 Redis 密码
面板 404安全入口变了,执行 bt default

10. 生产建议(装完再做)

  • /opt/ruoyi-office/app/config/application-prod.yamlyudao.captcha.enable 改为 true 后,重建容器:
    cd /opt/ruoyi-office/compose && docker compose up -d --force-recreate
  • 改默认 admin 密码;不要把面板端口和安全入口暴露到公网。
  • 业务库与面板 root 密码不要用文档示例。
联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版