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

news/2024/11/14 12:38:21/文章来源:https://www.cnblogs.com/yangguojun/p/18418054

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

安装后重启服务,完成!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799201.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET 开源工业级移动端仓库管理系统

前言 在工业生产中,定制化的软件对于每个环节都至关重要。对于仓库管理,推荐一款开源的仓库管理系统(WMS)解决方案。 这款基于.NET 框架开发的移动应用,提供了全面的仓库操作、订单处理、主数据管理、数据分析及个人信息设置等功能,是工业仓库管理的有利助手。 项目介绍 …

Linux下eCal测试计划及进度记录

完整的源代码包:# 安装依赖 sudo apt-get install git cmake doxygen graphviz build-essential zlib1g-dev sudo apt-get install libhdf5-dev libprotobuf-dev libprotoc-dev protobuf-compiler sudo apt-get install libcurl4-openssl-dev libqwt-qt5-dev libyaml-cpp-dev…

闯关提交01

任务:完成SSH连接与端口映射并运行 hello_world.py

Vue3.5中解构props,让父子组件通信更加丝滑

前言 在Vue3.5版本中响应式 Props 解构终于正式转正了,这个功能之前一直是试验性的。这篇文章来带你搞清楚,一个String类型的props经过解构后明明应该是一个常量了,为什么还没丢失响应式呢?本文中使用的Vue版本为欧阳写文章时的最新版Vue3.5.5 关注公众号:【前端欧阳】,给…

【python爬虫案例】利用python爬取豆瓣电影TOP250评分排行数据!

【python爬虫案例】利用python爬取豆瓣电影TOP250评分排行数据,并导出为excel文档一、爬取对象-豆瓣电影TOP250 今天给大家分享一期豆瓣读书TOP排行榜250的python爬虫案例 爬取的目标网址是:https://movie.douban.com/top250咱们以目标为驱动,以兴趣为导向,先来看下爬虫程序…

Ros2 - Moveit2 - DeepGrasp(深度抓握)

MoveIt 深度把握 本教程演示了如何在 MoveIt 任务构造器中使用抓握姿势检测 (GPD)和 Dex-Net 。 GPD(左)和 Dex-Net(右)用于生成拾取圆柱体的抓取姿势。 https://moveit.picknik.ai/main/_images/mtc_gpd_panda.gif 入门 如果您还没有这样做,请确保您已经完成入门指南中…

(装)K8s 总体架构及目录结构

原文:https://www.guoshaohe.com/cloud-computing/kubernetes-source-read/12491. kubernetes 总体架构目前想对kubernetes 1.21 的源码进行一次阅读分析,本篇文章是对k8s的整体架构进行一个大致分析,先要搞清楚每个组件的功能和任务,在根据不同的组件进行深度的源码分析。…

[C++ Daily] calloc 与 malloc

转载 C++ 面试突破 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台 Kind BorglQI的评论

贼好用!五分钟搭建一个美观且易用的导航页面!

Pintree 是一个开源项目,旨在将浏览器书签导出成导航网站。通过简单的几步操作,就可以将书签转换成一个美观且易用的导航页面。大家好,我是 Java陈序员。 今天,给大家介绍一个贼好用的导航网站搭建工具,只需通过几步操作,就能搭建出个性化导航网站!关注微信公众号:【Ja…

26.删除有序数组中的重复项 Golang实现

题目描述:给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以…

Hadoop(十一)HDFS 读写数据流程

HDFS读写数据流程 一、写数据流程1、客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在 2、NameNode返回是否可以上传 3、客户端请求第一个Block上传到哪几个DataNode服务器上 4、NameNode返回3个DataNode节点,分…

产品经理的日常工作

杜工库 声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/ 如出现转载未声明 将追究法律责任~谢谢合作