1. 环境准备与宝塔面板安装
第一次用宝塔部署Ruoyi项目时,我对着命令行界面发呆了半小时——这可能是很多小白的真实写照。其实整个过程就像组装乐高积木,只要按步骤来就能搭建出完整的系统。我们先从最基础的服务器环境说起。
选择云服务器时,国内主流平台1核2G配置就足够运行Ruoyi。记得在安全组开放以下端口:8888(宝塔面板)、80/443(Web服务)、3306(MySQL)、6379(Redis)以及项目要用的端口(如8080)。拿到服务器后,用SSH工具连接,执行这条"魔法咒语":
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec安装完成后会显示面板地址和初始账号密码,建议立即保存到本地。首次登录宝塔会弹出环境安装向导,我建议选择"LNMP"组合(Nginx 1.20+、MySQL 5.7、PHP 7.4)。这里有个小技巧:PHP版本选7.4足够用,MySQL一定要选5.7以上,否则导入数据时会报错。
2. 后端部署全流程
2.1 数据库配置
在宝塔面板的数据库菜单新建数据库,字符集选utf8mb4。下载的Ruoyi源码里会有SQL文件(通常在/sql目录),通过宝塔的phpMyAdmin导入时,我遇到过两个典型问题:
- 文件过大无法上传:修改php.ini中的upload_max_filesize
- 外键约束报错:在导入前执行SET FOREIGN_KEY_CHECKS=0
记得检查application-druid.yml中的数据库配置,特别是密码字段。有次我折腾半天连接失败,最后发现是密码里的特殊字符没转义。
2.2 项目打包与上传
用IDEA打开项目后,先修改这三个配置文件:
- application.yml:server.port改为计划使用的端口(如8080)
- application-druid.yml:数据库连接信息
- logback.xml:日志路径改为服务器真实路径(如/www/wwwroot/logs)
执行maven打包时,建议跳过测试:
mvn clean package -Dmaven.test.skip=true上传jar包到服务器后,在宝塔的"Java项目"菜单新建项目。关键配置点:
- 项目路径:建议放在/www/wwwroot/目录下
- JDK版本:与本地开发环境保持一致
- 端口号:与配置文件中的server.port一致
2.3 常见启动问题
第一次启动失败时别慌,查看日志通常能发现:
- 端口冲突:netstat -tlnp查看占用端口的进程
- 数据库连接失败:检查账号密码及远程连接权限
- 文件权限问题:chmod -R 777 /www/wwwroot/logs
3. 前端部署实战
3.1 项目打包技巧
在ruoyi-ui目录下执行打包时,Node.js版本建议用16.x。遇到过两个坑:
- 高版本Node报openssl错误:在package.json的build命令前加SET NODE_OPTIONS=--openssl-legacy-provider
- 打包后页面空白:修改vue.config.js中的publicPath为./
3.2 Nginx配置精髓
宝塔新建站点后,关键配置在Nginx的location块:
location / { try_files $uri $uri/ /index.html; root /www/wwwroot/ruoyi-ui/dist; } location /prod-api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $http_host; }特别注意:
- proxy_pass末尾的/不能漏
- 前端路由需要try_files配置
- 静态资源缓存可以设置expires
4. 安全加固与优化
部署完成后,建议立即:
- 修改宝塔面板默认端口
- 设置SSH密钥登录
- 配置防火墙规则
- 开启Nginx的gzip压缩
- 设置定时任务备份数据库
性能优化方面,可以:
- 调整JVM参数:-Xms512m -Xmx1024m
- 配置Redis缓存
- 开启Nginx的http2
5. 故障排查指南
遇到问题先看日志:
- 后端日志:/www/wwwroot/项目名/logs
- Nginx错误日志:/www/wwwlogs/域名.error.log
- MySQL慢查询日志:通过宝塔面板开启
常见问题解决方案:
- 502错误:检查后端服务是否运行
- 接口404:确认Nginx的proxy_pass配置
- 静态资源加载失败:检查路径和权限
- 登录失败:确认Redis服务正常
记得第一次成功看到登录页面的成就感,所有报错都成了值得回味的经历。部署过程中养成记录配置变更的习惯,下次再部署同样项目时效率能提升数倍。