从零到一:宝塔面板与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 # 项目部署目录关键配置修改点:
- 数据库配置:修改
application-druid.yml中的连接信息
spring: datasource: druid: master: url: jdbc:mysql://localhost:3306/ry-vue?useSSL=false username: root password: 你的数据库密码- Redis配置:确保
application.yml中的Redis端口与宝塔安装一致
redis: host: 127.0.0.1 port: 6379 password:- 日志路径:这是最常见的坑!修改
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前端部署有几个技术要点需要注意。首先在本地开发环境打包前,建议修改以下配置:
- 解决Node.js 17+兼容问题: 在package.json的scripts中添加:
"build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"- 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配置、负载均衡、多环境部署等,建议参考宝塔官方文档结合项目实际需求进行调整。部署完成后,定期检查服务器资源使用情况,设置适当的备份策略,确保服务稳定运行。