1. 购买阿里云

最近阿里云推出99元套餐,相当划算,薅羊毛搞起 ->新老同享阿里云99一年

        系统选择centos

2. 安装JDK

        JDK >= 1.8 虽说推荐1.8版本,但毕竟有点老,我选的JDK17,安装过程如下:

# 下载安装包

wget https://download.oracle.com/java/17/archive/jdk-17.0.1_linux-x64_bin.tar.gz

# 解压

输入tar zxvf jdk-17.0.1_linux-x64_bin.tar.gz

# 移动到/usr/local/目录下

mv jdk-17.0.1 /usr/local/

# 配置jdk环境

vim /etc/profile

# 添加如下配置

export JAVA_HOME=/usr/local/jdk-17.0.1

export CLASSPATH=.:$JAVA_HOME/lib/

export PATH=.:$JAVA_HOME/bin:$PATH

# 配置生效

source /etc/profile

# 验证安装

java -version

3. 安装Mysql

        Mysql >= 5.7.0 (推荐5.7版本)

# 确保服务器系统处于最新状态

yum -y update

# 检查是否已经安装,如果已经安装先删除以前版本,未安装的跳过此步

rpm -qa | grep mysql

rpm -e mysql57-community-release

# 下载MySql安装包

rpm -ivh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

# 安装MySql

yum install mysql-community-server

遇到报错:

The GPG keys listed for the “MySQL 5.7 Community Server” repository are already installed but they are not correct for this package.

Public key for mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm is not installed

安装换成如下命令:

yum install mysql-community-server --nogpgcheck

# 启动服务

systemctl start mysqld

# 获取临时密码

grep 'temporary password' /var/log/mysqld.log

# 登录MySQL

mysql -u root -p

# 修改密码,默认密码长度大于8,且必须含有数字,小写或大写字母,特殊字符

alter user 'root'@'localhost' identified by '你的密码';

# 也可修改密码设置规则

set global validate_password_policy=0;

set global validate_password_length=1;

# 修改MySQL默认编码

exit  #退出mysql

vim /etc/my.cnf  #进入my.cnf文件

添加如下代码:

character_set_server=utf8

init_connect='SET NAMES utf8'

systemctl restart mysqld  #启动mysql

mysql -u root -p      #登录mysql

show variables like '%character%'; #查看编码

-- 修改密码

UPDATE mysql.user SET authentication_string=PASSWORD('你的密码') WHERE User='root';

use mysql;

-- 查看用户表权限:

select host,user from user;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION; 

-- 命令立即执行生效(千万不要忘记刷新!!!)

flush privileges;

配置阿里云服务器,安全组->管理规则->手动添加,放开3306端口


4. 安装Redis

        Redis >= 3.0,这里以3.2.10为例

# 没有先创建

cd /usr/local/redis

# 下载压缩包

wget http://download.redis.io/releases/redis-3.2.10.tar.gz

# 解压

tar -zxvf redis-3.2.10.tar.gz

# 进入解压目录

cd redis-3.2.10

# 安装(在redis-3.2.10下)

make

# 编辑配置文件

vim ./redis.conf

将 daemonize no 改成 daemonize yes(在128行左右)

# 启动服务:

./redis-server  ../redis.conf

5. 安装nodejs

Node >= 12,nodejs官网下载,我选的v16

上传nodejs到服务器

# /usr/local 下解压

tar -xvf node-v16.13.1-linux-x64.tar.xz

# 修改名称为nodejs16

# 修改环境变量

vim ~/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/nodejs16/bin

export PATH

# 保存退出后执行

source ~/.bash_profile

# 建立软连接

ln -s /usr/local/nodejs16/bin/node /usr/local/bin/node

ln -s /usr/local/nodejs16/bin/npm /usr/local/bin/npm

# 更改npm包下载地址

npm config set registry https://registry.npm.taobao.org

# 查看修改结果

npm config get registry

6. 部署后端服务

6.1 创建database

CREATEDATABASE `ry-vue`CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;

6.2 导入sql

上传sql文件ry_20231130.sql,mysql中执行导入

source /home/work/ruoyi/ry_20231130.sql

6.3 代码打包

先修改配置文件中的数据库用户名、密码、上传路径、日志文件配置,再打包

mvn clean package

找到admin下的target,打出来的jar包即可上传到服务器

上传ry.sh,执行 sh ry.sh start 启动服务

7. 运行前端

上传 ruoyi-ui 到服务器

cd ruoyi-ui

# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。

npm install --registry=https://registry.npmmirror.com

# 启动项目

nohup npm run dev &

8.页面展示

利用服务器的公网IP和端口,访问页面

99元阿里云服务器部署若依前后端分离版(ruoyi-vue)_desktop

登录后:

99元阿里云服务器部署若依前后端分离版(ruoyi-vue)_mysql_02

编辑

服务刚启动时,遇到一个问题:

ERROR c.r.f.w.e.GlobalExceptionHandler - [handleException,104] - 请求地址'/captchaImage',发生系统异常.

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.InternalError: java.lang.reflect.InvocationTargetException

Caused by: java.lang.reflect.InvocationTargetException: null

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)

at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)

at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)

at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:85)

... 117 common frames omitted

Caused by: java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration

at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1269)

at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:224)

at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:106)

at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:706)

at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:358)

at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:315)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)

at java.desktop/sun.font.SunFontManager.(SunFontManager.java:315)

at java.desktop/sun.awt.FcFontManager.(FcFontManager.java:35)

at java.desktop/sun.awt.X11FontManager.(X11FontManager.java:56)

... 123 common frames omitted

是因为使用的OenJDK不支持awt包下的字体,安装FontConfig组件即可

yum install -y fontconfig

安装后重启服务,完成!