宝塔面板+若依框架:零基础全栈部署实战指南

第一次在Linux服务器上部署前后端分离项目是什么体验?我至今记得那种面对黑底白字终端的茫然——明明本地开发跑得好好的项目,怎么一到服务器就各种报错?如果你也和我当初一样,对Linux命令望而生畏,又急需将若依框架项目部署上线,这篇指南就是为你量身定制的。我们将完全通过宝塔面板的图形化操作,避开90%新手会踩的坑,特别是那些连老手都可能忽略的云服务器安全组配置细节。

1. 云服务器选购与基础配置

选择云服务器就像选房子,地段(区域)和户型(配置)决定了后续的使用体验。国内三大云平台中,腾讯云的轻量应用服务器对新手最友好,阿里云的ECS性价比突出,华为云则在企业级服务上有优势。但无论选择哪家,这几个参数必须重点关注:

  • CPU与内存:若依框架基础版建议2核4G起步(并发50以下足够)
  • 系统镜像:CentOS 7.9或Ubuntu 20.04 LTS(宝塔面板兼容性最佳)
  • 带宽:测试环境1Mbps足够,生产环境建议3Mbps以上
  • 系统盘:至少40GB(日志文件会随时间增长)

重要提示:购买完成后立即在控制台重置实例密码,并开启SSH密钥对认证(比密码登录安全10倍)

云平台的安全组(防火墙)配置是第一个隐形杀手。以腾讯云为例,必须在控制台完成以下端口放行:

端口号 协议类型 用途说明 开放范围
22 TCP SSH远程连接 仅限个人办公IP
8888 TCP 宝塔面板默认端口 0.0.0.0/0
80 TCP HTTP访问 0.0.0.0/0
443 TCP HTTPS访问 0.0.0.0/0
3306 TCP MySQL数据库 服务器内网IP段
6379 TCP Redis缓存 服务器内网IP段

2. 宝塔面板的智能安装策略

通过SSH连接服务器后,只需执行一行命令即可安装宝塔面板(以CentOS为例):

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装过程中会遇到两个关键选择:

  1. 极速安装 vs 编译安装

    • 极速安装:使用预编译的二进制包,5分钟完成,适合测试环境
    • 编译安装:从源码构建,耗时30分钟以上,性能优化更好
  2. 软件版本选择

    • MySQL:生产环境推荐5.7(若依框架兼容性好)
    • PHP:选择7.4(尽管若依是Java项目,但可能用到PHPMyAdmin)
    • Nginx:最新稳定版即可

安装完成后,浏览器访问http://服务器IP:8888进入面板,立即完成这三项安全加固:

  1. 修改默认8888端口为随机五位数端口
  2. 在面板设置中绑定访问域名(防止IP暴露)
  3. 开启BasicAuth二次认证

3. 若依项目部署的五个致命陷阱

3.1 数据库权限的隐形炸弹

宝塔安装的MySQL默认只允许localhost连接,必须执行以下操作:

-- 在宝塔终端执行
mysql -u root -p
> use mysql;
> update user set host='%' where user='root';
> flush privileges;

然后修改ruoyi-admin/src/main/resources/application-druid.yml中的配置:

# 原配置
url: jdbc:mysql://localhost:3306/ry?useSSL=false
# 修改为
url: jdbc:mysql://服务器内网IP:3306/ry?useSSL=false&serverTimezone=Asia/Shanghai

3.2 Redis密码的连环坑

宝塔的Redis默认无密码,这会导致若依报错"Connection refused"。解决方案:

  1. 在宝塔Redis设置中添加密码(如:RuoYi@123)
  2. 修改application.yml
redis:
  host: 127.0.0.1
  port: 6379
  password: RuoYi@123  # 新增这行
  timeout: 3000

3.3 前端打包的路径陷阱

ruoyi-ui/.env.production中:

# 错误的绝对路径写法
VUE_APP_BASE_API = 'http://123.123.123.123:8080'

# 正确的相对路径写法
VUE_APP_BASE_API = '/api'

3.4 Nginx代理的跨域魔术

宝塔的Nginx配置需要增加这段关键代码:

location /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;
}

3.5 文件权限的隐藏杀手

上传到服务器的jar包经常因权限问题无法执行:

# 在宝塔终端执行
chmod +x /www/project/ruoyi-admin.jar
chown -R www:www /www/project

4. 一键式部署检查清单

在最终启动项目前,用这个清单核对所有配置:

  1. [ ] 云服务器安全组已放行80、443、后端端口(默认8080)
  2. [ ] 宝塔面板→安全→防火墙已放行相同端口
  3. [ ] MySQL的root账户已开启远程访问
  4. [ ] Redis密码与配置文件一致
  5. [ ] 前端打包使用的API地址是相对路径"/api"
  6. [ ] Nginx配置了正确的静态资源路径和代理规则
  7. [ ] jar文件具有可执行权限(x)
  8. [ ] 检查日志文件是否有报错:
    tail -n 100 /www/wwwlogs/nginx_error.log
    journalctl -u nginx -b
    

当所有检查项通过后,在宝塔的"网站"→"Java项目"中添加项目,选择上传的jar包,JDK版本与本地开发环境一致(可通过java -version验证)。启动成功后,访问域名应该能看到若依的登录界面。

记得第一次成功登录时,我特意截图发了朋友圈——原来Linux部署也可以不用记住那些可怕的命令行参数。宝塔面板就像给服务器装上了方向盘和仪表盘,让每个开发者都能成为自己项目的运维工程师。

更多推荐