记录一次若依管理系统部署练习

4 阅读3分钟

给新服务器搭建环境,以及部署一下若依后台管理系统,进一步熟悉部署流程,使用的是若依前后端分离版本。

因为主要是记录环境配置,所以若依部署的部分没那么详细。

服务器是腾讯云轻量应用服务器,Debian12。2核2G(但后面内存炸了,启动不起来,只能含泪加钱升级内存)

安装mysql

参考文章:

在官网找到MySQL APT Repository页面,然后用wget命令下载deb文件:MySQL :: Download MySQL APT Repository

$wget https://repo.mysql.com/mysql-apt-config_0.8.33-1_all.deb -P /tmp
$sudo dpkg -i /tmp/mysql-apt-config_0.8.33-1_all.deb

报错提示gnupg未安装,那么就安装gnupg。

安装之后记得还得apt update,否则会报错说找不到mysql-server的安装包

$sudo apt install gnupg
$sudo apt update
$sudo apt install mysql-server

照着参考文章里面选默认安装选项,设定好root的密码,就可以用如下命令启动mysql:

$mysql -u root -p

进去之后创建新用户,并授予权限。原因是:

注意:root账号在debian系统中无法直接开启远程连接,所以需要新建mysql用户;

mysql> CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

如果想要改密码,那就登录需要改密码的账号,进入mysql终端,执行以下命令(参考MySQL修改root用户密码_修改mysql root密码-CSDN博客):

mysql> ALTER USER 'your_username'@'localhost' IDENTIFIED BY 'new_password'

安装jdk

用网上随便找的共享Oracle账号下载了jdk 8u202的tar.gz包之后,上传到/usr/local/java路径,解压:

$sudo tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/java

修改环境变量:Linux 添加环境变量的五种方法_linux添加环境变量-CSDN博客

$sudo vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH

使环境变量生效:

$source /etc/profile

不过如果想要让其对所有用户生效,需要重启系统。

安装redis

debian安装redis很简单,用apt可以直接安装redis-server,中途没有遇到什么问题,安装完毕就自动启动服务了。

$sudo apt update
$sudo apt install redis-server

部署若依

上传文件

上传后端的jar包和前端打包好的dist目录。

前端文件我放在/data/www/ruoyi,后端我放在/home/ruoyi/jar当中。本来是放在其他地方的,但发现ruoyi启动时在上述目录生成logs目录了,大概是忘记改默认日志路径了,所以干脆使用这个路径来放了。

导入数据

将后端所需的sql文件上传到服务器,在sql文件所在的目录进入mysql终端,创建ry-vue数据库,由于有特殊符号连字符,这里注意要用倒引号括起来。

接着执行sql脚本。

mysql> create database `ry-vue`;
mysql> use `ry-vue`;
mysql> source ry_20240629.sql;

启动后端

将若依官网提供的run.bat脚本改为适用于linux的run.sh

#!/bin/bash

echo
echo "[信息] 使用Jar部署Web应用"
echo

cd "$(dirname "$0")"
#改为jar包存放的路径
cd /home/ruoyi/jar 

JAVA_OPTS="-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m"

java $JAVA_OPTS -jar ruoyi-admin.jar

read -p "按任意键继续..."

运行run.sh即可。

如果需要长期挂在后台运行,使用screen命令创建虚拟终端,随后在虚拟终端中运行。

$screen -R ruoyi
$./run.sh


Ctrl+A+D可以离开这个终端,之后可以通过如下命令回到这个名为ruoyi的终端:

$screen -r ruoyi

配置nginx站点

上一篇文章一样,在sites-available目录下复制一份模板站点的配置文件,配置软链接到sites-enabled目录

$cp /etc/nginx/sites-available/default /etc/nginx/sites-available/ruoyi
$ln -s /etc/nginx/sites-available/ruoyi /etc/nginx/sites-enabled/ruoyi


跟着官方文档配置站点

server {
    #listen       80;
    listen 12306;# 这里可以换成对外开放的端口
    server_name  localhost;
    charset utf-8;

    location / {
        root   /data/www/ruoyi;
        try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

    location /prod-api/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8080/;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

重载nginx配置文件。

$nginx -s reload

通过服务器IP加端口或者域名加端口,就能访问到若依的前端页面了,当然,腾讯云的防火墙得加个开放对应端口的规则,这里不赘述。

解决405错误

不过,验证码没有出来,浏览器控制台还报405 (Not Allowed)错误。

浏览器控制台的报错是:

http://服务器IP:配置文件指定的端口/stage-api/login 405 (Not Allowed)

原来是因为,我打包的时候用的是stage环境的配置,而nginx配的是prod的配置,将“location /prod-api/”改为“location /stage-api/”就完成了。

收尾

毕竟只是测试部署流程,若依后台的初始密码都没有改,将端口暴露在公网还不做任何防护不太好,所以做好准备之前还是先将这个站点关掉吧。

这个也很简单,将sites-enabled目录下的软链接删掉即可。

$rm /etc/nginx/sites-enabled/ruoyi

或者防火墙直接关掉这个端口更快。