首页 > 其他分享 >99元阿里云服务器部署若依前后端分离版(ruoyi-vue)

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

时间:2024-09-18 10:35:33浏览次数:10  
标签:vue java sun ruoyi desktop 99 usr mysql local

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和端口,访问页面


 

登录后:


 

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

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

安装后重启服务,完成!

 

标签:vue,java,sun,ruoyi,desktop,99,usr,mysql,local
From: https://www.cnblogs.com/yangguojun/p/18418054

相关文章

  • [附源码]超简洁个人博客网站搭建+SpringBoot+Vue前后端分离
    今天带来一款优秀的项目:个人博客系统源码 。系统采用的流行的前后端分离结构,内含功能包括"写博客文章",“修改博客文章”,“富文本编辑器”,“评论管理”“管理员角色”,“游客角色”,“文章标签”,“文章分类”如果您有任何问题,也请联系小编,小编是经验丰富的程序员! 一.系统演......
  • Vue3.5中解构props,让父子组件通信更加丝滑
    前言在Vue3.5版本中响应式Props解构终于正式转正了,这个功能之前一直是试验性的。这篇文章来带你搞清楚,一个String类型的props经过解构后明明应该是一个常量了,为什么还没丢失响应式呢?本文中使用的Vue版本为欧阳写文章时的最新版Vue3.5.5关注公众号:【前端欧阳】,给自己一个进阶vu......
  • [Vue] v-html、v-show、v-if 的区别
    v-if作用:根据条件动态创建或销毁DOM元素。原理:v-if实际上是按需渲染的,它会根据表达式的真假值来决定是否在DOM树中插入或移除元素。如果条件为false,该元素不会存在于DOM中。性能:因为v-if会真正地添加或移除元素,因此它在初次渲染时的开销较大,特别是当需要频繁切换时会......
  • Vue实战指南:Vue中将一维对象数组转换为二维对象数组
    Vue实战指南:Vue中将一维对象数组转换为二维对象数组引言一维对象数组与二维对象数组的概念一维对象数组二维对象数组Vue中转换的方法示例一:使用计算属性实现转换示例二:使用methods中的函数实现转换示例三:使用Vue自定义指令实现转换示例四:使用Vuex进行状态管理实际开发......
  • 使用pnpm、monorepo 来构建 vue + 独立组件库项目
    新建项目使用pnpm进行安装pnpmcreatevue@latest在根目录下创建pnpm-workerspace.yaml文件packages:-'components/**'此处,components为根目录中的components文件夹,他是独立于我们项目的一个组件库,不包含在src内,此时目录结构如下:root-components-node_modules......
  • 基于Java+vue的大学生心理健康管理系统的设计和实现(源码+LW+调试文档)
    目录:完整视频演示:系统架构:程序运行截图:核心代码参考:   数据库sql:项目技术介绍:java介绍:Mysql数据库介绍:为什么选择我:获取源码:......
  • Java基于SpringBoot的付费自习室管理系统+Vue[毕业设计]
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍费自习室管理系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了springboot框架。该系统从两个对象:由管理员和用户来对系统进行设计构建。主要功能......
  • Vue3.5+ 侦听器的3个更新
    你好同学,我是沐爸,欢迎点赞、收藏、评论和关注。在Vue3.5+中,对于侦听器的更新有以下几个方面:暂停/恢复侦听器、副作用清理/onWatcherCleanup和deep遍历深度,如果对此熟悉可以直接划走了,如果没有划走就一起看看吧。暂停/恢复侦听器在Vue3.5之前,watch和watchEffect有......
  • Java基于微信小程序的个人财务理财系统App+Vue[毕业设计]
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,个人财务系统APP当然不能排除在外。个人财务系统APP是在实际应用和软件工程的开发原......
  • Java基于SpringBoot的个人健康管理网站+Vue[毕业设计]
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍系统根据现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方法对个人健康管理的现状进行系统调查。采用结构化的分析设计,该方法要求结合一定的图表,在模块化......