news 2026/5/1 6:01:45

从零到一:宝塔面板与Ruoyi项目的部署艺术与避坑指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零到一:宝塔面板与Ruoyi项目的部署艺术与避坑指南

从零到一:宝塔面板与Ruoyi项目的部署艺术与避坑指南

1. 环境准备与宝塔面板安装

对于刚接触服务器部署的开发者来说,选择合适的云服务器是第一步。国内主流云平台如阿里云、腾讯云都提供轻量应用服务器,配置建议至少2核4G内存,系统推荐CentOS 7.9或Ubuntu 20.04 LTS。购买后通过SSH连接服务器,执行以下命令安装宝塔面板:

# CentOS系统安装命令 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec # Ubuntu系统安装命令 wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

安装完成后,系统会显示面板访问地址和初始账号密码。务必保存这些信息,建议使用密码管理器存储。在服务器安全组中放行8888(面板端口)、888(phpMyAdmin)、20/21(FTP)等端口。

提示:安装过程中若出现"Could not resolve host"错误,可能是DNS配置问题,可先执行echo "nameserver 8.8.8.8" >> /etc/resolv.conf再重试

宝塔面板初始化后,推荐安装以下软件组合:

软件类型推荐版本备注
Web服务器Nginx 1.22性能优于Apache
数据库MySQL 5.7兼容性最佳
编程语言Java Tomcat 8需与项目JDK版本匹配
缓存服务Redis 6.2会话管理必备
项目管理PM2 5.0进程守护

2. 后端部署:SpringBoot项目实战

Ruoyi后端部署需要特别注意配置文件调整,这是大多数新手容易踩坑的地方。首先在服务器创建项目目录结构:

/home/ruoyi/ ├── uploadPath # 文件上传目录 ├── logs # 日志目录 └── admin # 项目部署目录

关键配置修改点:

  1. 数据库配置:修改application-druid.yml中的连接信息
spring: datasource: druid: master: url: jdbc:mysql://localhost:3306/ry-vue?useSSL=false username: root password: 你的数据库密码
  1. Redis配置:确保application.yml中的Redis端口与宝塔安装一致
redis: host: 127.0.0.1 port: 6379 password:
  1. 日志路径:这是最常见的坑!修改logback.xml中的路径
<property name="log.path" value="/home/ruoyi/logs" />

使用Maven打包时,如果项目是多模块结构,需要在ruoyi-admin模块下执行:

mvn clean package -DskipTests

上传jar包后,在宝塔"网站"→"Java项目"中添加项目,关键配置项:

  • 项目路径:/home/ruoyi/admin/ruoyi-admin.jar
  • 端口号:与application.yml中server.port一致
  • JDK版本:推荐OpenJDK 1.8
  • 执行命令:保持自动生成的即可

注意:若启动失败,首先检查/home/ruoyi/logs/目录权限,执行chmod 777 -R /home/ruoyi/logs

3. 前端部署:Vue项目优化技巧

Ruoyi前端部署有几个技术要点需要注意。首先在本地开发环境打包前,建议修改以下配置:

  1. 解决Node.js 17+兼容问题: 在package.json的scripts中添加:
"build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
  1. API代理配置: 修改vue.config.js中的target为服务器IP:
proxy: { '/prod-api': { target: 'http://你的服务器IP:8080', changeOrigin: true } }

打包完成后,通过宝塔面板上传dist目录到网站根目录(如/www/wwwroot/yourdomain.com)。然后配置Nginx:

server { listen 80; server_name 你的域名; location / { root /www/wwwroot/yourdomain.com; try_files $uri $uri/ /index.html; index index.html; } location /prod-api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /profile/ { alias /home/ruoyi/uploadPath/; } }

性能优化建议

  • 开启Gzip压缩
  • 配置浏览器缓存
  • 启用HTTP/2协议
  • 添加CDN加速

4. 常见问题排查手册

根据社区反馈和实际部署经验,整理以下高频问题解决方案:

问题1:接口返回401未授权

  • 检查前端请求URL是否包含/prod-api前缀
  • 确认后端application.yml中token的有效期配置
  • 查看Redis服务是否正常运行

问题2:静态资源404错误

  • 确认Nginx的root路径是否正确
  • 检查文件权限:chown -R www:www /www/wwwroot
  • 清除浏览器缓存后重试

问题3:数据库连接失败

# 检查MySQL用户权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; FLUSH PRIVILEGES; # 检查3306端口是否开放 netstat -tulnp | grep 3306

问题4:上传文件权限不足

# 设置上传目录权限 chmod -R 777 /home/ruoyi/uploadPath chown -R www:www /home/ruoyi/uploadPath

对于更复杂的部署场景,如HTTPS配置、负载均衡、多环境部署等,建议参考宝塔官方文档结合项目实际需求进行调整。部署完成后,定期检查服务器资源使用情况,设置适当的备份策略,确保服务稳定运行。

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

基于StructBERT的中文情感分析方案|附轻量级镜像使用指南

基于StructBERT的中文情感分析方案&#xff5c;附轻量级镜像使用指南 1. 为什么需要更准的中文情感分析&#xff1f; 你有没有遇到过这样的情况&#xff1a; 电商后台堆积着上万条商品评论&#xff0c;人工翻看效率低到崩溃&#xff1b;客服系统收到“这个功能太难用了”&am…

作者头像 李华
网站建设 2026/4/18 15:43:30

Clawdbot惊艳效果展示:Qwen3:32B在Clawdbot中调用多个工具完成复杂任务链

Clawdbot惊艳效果展示&#xff1a;Qwen3:32B在Clawdbot中调用多个工具完成复杂任务链 1. 什么是Clawdbot&#xff1f;一个让AI代理真正“活起来”的平台 Clawdbot不是另一个简单的聊天界面&#xff0c;而是一个能让AI代理自主思考、主动调用工具、串联多个步骤完成真实任务的…

作者头像 李华
网站建设 2026/4/22 14:16:43

VibeVoice Pro零延迟语音引擎:5分钟搭建实时TTS系统

VibeVoice Pro零延迟语音引擎&#xff1a;5分钟搭建实时TTS系统 你是否遇到过这样的场景&#xff1a;在开发数字人助手时&#xff0c;用户刚说完话&#xff0c;AI却要等2秒才开口回应&#xff1f;在做实时客服对话系统时&#xff0c;语音合成成了整个链路中最卡顿的一环&#…

作者头像 李华
网站建设 2026/4/23 12:41:38

embeddinggemma-300m效果实测:短视频文案、直播话术、弹幕语义聚类能力

embeddinggemma-300m效果实测&#xff1a;短视频文案、直播话术、弹幕语义聚类能力 1. 为什么是embeddinggemma-300m&#xff1f;轻量但不妥协的语义理解新选择 你有没有遇到过这样的问题&#xff1a;想给几百条短视频文案做自动归类&#xff0c;却发现主流大模型嵌入服务要么…

作者头像 李华
网站建设 2026/4/23 17:51:50

从单兵作战到集团军协同:电商广告竞价优化的范式跃迁

从单兵作战到集团军协同&#xff1a;电商广告竞价优化的范式跃迁 当数百万广告主在电商平台上争夺有限的广告位时&#xff0c;竞价系统就像一场没有硝烟的战争。传统竞价优化如同单兵作战&#xff0c;每个广告主只关注自身利益最大化&#xff1b;而现代多智能体协同竞价则像集…

作者头像 李华