给新服务器搭建环境,以及部署一下若依后台管理系统,进一步熟悉部署流程,使用的是若依前后端分离版本。
因为主要是记录环境配置,所以若依部署的部分没那么详细。
服务器是腾讯云轻量应用服务器,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
- 官网下载:Java Archive Downloads - Java SE 8
- 主要参考:Debian 12 JDK安装教程_debian12 安装jdk-CSDN博客
- 如何在 Debian 和 Ubuntu 上安装 Oracle Java JDK 18
用网上随便找的共享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
部署若依
- 官方部署文档:环境部署 | RuoYi
上传文件
上传后端的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
或者防火墙直接关掉这个端口更快。