news 2026/4/18 12:00:23

【实战】RuoYi-Vue开发环境一站式部署:从零到启动的避坑指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【实战】RuoYi-Vue开发环境一站式部署:从零到启动的避坑指南

1. 环境准备:Ubuntu系统基础配置

第一次在Ubuntu上部署RuoYi-Vue时,我建议先做系统级准备。很多人会忽略这个步骤,结果在后续环节频繁遇到权限问题。先执行sudo apt update && sudo apt upgrade -y更新系统,这个操作能避免90%的依赖冲突。记得检查系统版本,我用的是Ubuntu 22.04 LTS,如果你用其他版本,某些命令可能需要微调。

开发环境最怕依赖缺失,建议直接安装这个全家桶:

sudo apt install -y git curl wget vim net-tools openssl

这些工具在后续排查问题时非常有用。比如net-tools里的netstat命令,当遇到端口冲突时,用sudo netstat -tulnp | grep 3306就能快速定位谁占用了MySQL端口。

2. JDK安装与避坑指南

RuoYi要求JDK1.8+,但千万别直接apt install openjdk-11-jdk!我踩过坑:OpenJDK的某些实现会导致RuoYi的Shiro组件报错。推荐用Oracle JDK,按这个步骤操作:

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.deb sudo dpkg -i jdk-17_linux-x64_bin.deb

配置环境变量时有个细节:在/etc/environment中添加:

JAVA_HOME="/usr/lib/jvm/jdk-17" PATH="$PATH:$JAVA_HOME/bin"

这比写在.bashrc里更彻底,对所有用户生效。验证时别只用java -version,还要跑个javac命令,确保开发工具链完整。

3. Docker一站式部署中间件

3.1 Docker引擎安装

官方文档的方法需要翻墙(注意规避敏感词),用国内镜像源更稳:

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装后务必执行sudo usermod -aG docker $USER,然后重新登录,否则每次都要sudo。

3.2 MySQL容器化部署

RuoYi对MySQL有版本要求,这个命令能拉取指定版本:

docker pull mysql:5.7.38 --platform linux/x86_64

启动容器时重点注意字符集:

docker run --name ruoyi-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=yourpassword -e MYSQL_DATABASE=ry-vue -e MYSQL_CHARSET=utf8mb4 -e MYSQL_COLLATION=utf8mb4_unicode_ci -d mysql:5.7.38

我曾因为漏掉utf8mb4导致emoji存储异常,这个字符集才是真正的UTF-8。

3.3 Redis避坑配置

官方说Redis>=3.0,但实测6.x版本更稳定。启动时加上内存限制:

docker run --name ruoyi-redis -p 6379:6379 -d redis:6.2.6 --maxmemory 512mb --maxmemory-policy allkeys-lru

这个配置能防止开发环境内存溢出。连接测试时用redis-cli -h localhost,如果返回PONG就是成功了。

4. 源码配置实战技巧

4.1 项目克隆与IDE配置

从Gitee克隆时可能会超时,改用SSH协议:

git clone git@gitee.com:y_project/RuoYi-Vue.git

用IDEA打开后,记得检查Maven配置:

  1. 设置阿里云镜像:在settings.xml中加入
<mirror> <id>aliyunmaven</id> <url>https://maven.aliyun.com/repository/public</url> <mirrorOf>*</mirrorOf> </mirror>
  1. JDK要选我们安装的Oracle JDK,不要用IDEA自带的

4.2 数据库初始化陷阱

执行SQL脚本前,先创建数据库:

CREATE DATABASE `ry-vue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

重点来了!RuoYi的SQL文件有两个:

  1. ry_20210908.sql- 核心数据
  2. quartz.sql- 定时任务表

用MySQL客户端连接时,如果遇到ERROR 2003 (HY000),检查Docker容器的IP:

docker inspect ruoyi-mysql | grep IPAddress

4.3 配置文件关键修改点

ruoyi-admin/src/main/resources目录下:

  1. application-druid.yml:数据库连接字符串要加时区
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
  1. application.yml:Redis配置如果用了Docker,host改为host.docker.internal
  2. logback.xml:把/home/ruoyi/logs改为./logs,否则会报路径错误

5. 前后端联调实战

5.1 后端启动排错

用Maven编译时如果报Could not transfer artifact,先执行:

mvn dependency:purge-local-repository

启动类RuoYiApplication的日志出现猫咪ASCII艺术就成功了。如果卡住,检查:

  • MySQL连接数是否够用:show status like 'Threads_connected';
  • Redis内存是否耗尽:info memory

5.2 前端环境搭建

Node.js建议用nvm管理:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash nvm install 16.14.2

ruoyi-ui目录下安装依赖时,如果npm install太慢:

npm config set registry https://registry.npmmirror.com npm install --legacy-peer-deps

这个--legacy-peer-deps能解决Vue CLI和某些插件的版本冲突。

5.3 跨域问题解决

开发时前端npm run dev默认用8080端口,后端是8081,需要配置代理。修改ruoyi-ui/vue.config.js

devServer: { proxy: { '/api': { target: 'http://localhost:8081', changeOrigin: true, pathRewrite: { '^/api': '' } } } }

这样前端请求/api/user/login会自动转发到后端。

6. 常见问题速查手册

  1. Logback报错:检查日志目录权限,执行mkdir -p logs && chmod 777 logs
  2. MySQL连接失败:在Docker容器内登录MySQL执行:
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES;
  3. 前端白屏:删除node_modulespackage-lock.json后重新npm install
  4. IDEA报程序包不存在:右键项目 -> Maven -> Reimport
  5. Redis连接超时:检查防火墙sudo ufw allow 6379

这套环境我部署过不下20次,最耗时的一次是因为Ubuntu自带的MySQL客户端版本不兼容。后来总结出这个金科玉律:所有依赖都用Docker容器化部署,保持宿主机的干净。现在每次换新机器,30分钟就能搭好全套环境。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 12:00:17

Claude 4.7 震撼发布:自检能力逆天,但实名封号怎么破?

在大模型领域的竞赛中&#xff0c;Anthropic 旗下的 Claude 系列一直以“最像人类、逻辑最强”著称。就在昨日&#xff0c;Claude Opus 4.7 正式上线&#xff0c;其表现出的自主性、视觉能力和编码水平&#xff0c;再次刷新了行业天花板。 然而&#xff0c;对于国内开发者和企…

作者头像 李华
网站建设 2026/4/18 11:59:18

WeMod增强工具完整指南:三步免费解锁高级游戏辅助功能

WeMod增强工具完整指南&#xff1a;三步免费解锁高级游戏辅助功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否厌倦了每月为WeMod Pro功能付费…

作者头像 李华
网站建设 2026/4/18 11:58:29

船舶自动化中的数字化: 为什么可靠的边缘系统在海上至关重要?

前言海事行业正经历着深刻的技术变革。船舶不再是独立航行于海洋的孤立机械系统&#xff0c;而是日益成为互联互通、数据驱动的环境&#xff0c;导航、推进、安全和运营系统在其中持续交互。这场数字化转型&#xff0c;正重新定义船舶的设计、运营与维护方式。从驾控台系统、发…

作者头像 李华
网站建设 2026/4/18 11:57:44

硬件工程师避坑指南:从BTB到M.2,聊聊那些年我们选错的连接器

硬件工程师避坑指南&#xff1a;从BTB到M.2&#xff0c;那些年我们选错的连接器 在硬件设计领域&#xff0c;连接器就像电路板之间的"桥梁工程师"&#xff0c;它们的选型失误往往会导致整个项目延期甚至失败。记得我第一次负责车载娱乐系统设计时&#xff0c;因为FFC…

作者头像 李华