title: 环境部署(云)urlname: tqmwde
date: ‘2022-03-13 09:50:46’
tags: []
categories: [项目实操]

写在前面

该篇文档记录微服务版的若依项目部署在腾讯云的步骤过程

参考资料

官方文档:http://doc.ruoyi.vip/ruoyi-cloud/
参照视频:https://www.bilibili.com/video/BV1Tz4y1o71R?spm_id_from=333.999.0.0
(项目是微服务版部署在腾讯云,与视频出入较大)

大致步骤

后端配置

  1. linux 下 jdk、maven、git 配置
  2. 添加 ssh 公钥和从 git 仓库克隆源代码
  3. linux 下 docker 安装
  4. docker 下 mysql 安装步骤
  5. 在 mysql 数据库中执行项目 sql 文件
  6. 修改配置,启动 redis&nacos
  7. 启动后端项目

前端配置

  1. 配置 node 环境
  2. 导入依赖
  3. 打包项目发布到 nginx

正文

前期准备

  1. 购买阿里云/腾讯云服务器
  2. 安装 winSCP+putty,连接至服务器

备注:winSCP 用于本机和服务器之间的文件传输,putty 则是远程登录控制。

后端配置步骤

一、linux 下 jdk、maven、git 配置

  1. 将压缩包上传到服务器上

若依の环境部署(云) - 图1

  1. 解压

    tar zxvf …

  1. 修改配置文件

    vim /etc/profile

在 profile 文件中添加下面关于 jdk 和 maven 的配置

export JAVA_HOME=/data/service/jdk1.8
export PATH=若依の环境部署(云) - 图2JAVA_HOME/bin
export MAVEN_HOME=/data/service/maven-3.6.3
export PATH=若依の环境部署(云) - 图3MAVEN_HOME/bin

  1. 查看版本

输入下面命令检查是否配置完成

[root@VM-16-11-centos ~]$ java -version
java version “1.8.0_161”

[root@VM-16-11-centos ~]$ mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)

  1. git 配置

git 安装命令,方便安装最新版本

yum -y install git
[roothouse@VM-16-11-centos ~]$ git —version
git version 2.27.0

[root@VM-16-11-centos ~]# git config —global user.name “iHan”
[root@VM-16-11-centos ~]# git config —global user.email “ 1059398280@qq.com
[root@VM-16-11-centos ~]# git config —list
user.name=iHan
user.email=1059398280@qq.com

二、添加 ssh 公钥和从 git 仓库克隆源代码

ssh-keygen -t rsa -C “1059398280@qq.com“ #接下来一直敲回车,生成 ssh key
cat ~/.ssh/id_rsa.pub #获取到公钥,添加到 gitee 中

若依の环境部署(云) - 图4

root@VM-16-11-centos .ssh]$ ssh -T git@gitee.com
Hi iHan! You’ve successfully authenticated, but GITEE.COM does not provide shell access.

bug:添加公钥后仍然无法 clone

[root@VM-16-11-centos gitee]$ sudo git clone git@gitee.com:y_project/RuoYi-Cloud.git
Cloning into ‘RuoYi-Cloud’…
git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository.

使用 putty 在 root 用户下重新配置后生效…
若依の环境部署(云) - 图5

三、linux 下 docker 的安装

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager
—add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker

四、docker 下 mysql 安装步骤

yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm #查看可用的 MySQL 版本
docker search mysql #拉取 5.7 版本
docker pull mysql:5.7 #检查是否成功
docker images

配置 my.conf
若依の环境部署(云) - 图6
运行 mysql 并进入 bash

在公共网络上启动 mysql,将 data 下的 conf 文件导入

docker run -p 3306:3306 —name mysql
-v /data/docker/mysql/conf:/etc/mysql/conf.d
-v /data/docker/mysql/logs:/logs
-v /data/docker/mysql/data:/data
—restart=always
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 #检查是否成功
docker ps
docker exec -it mysql bash
mysql -u root -p
123456

五、执行 sql 文件

先移动 sql 文件到 docker/mysql/config
若依の环境部署(云) - 图7
ps:修改 ry_config 中 mysql 相关配置信息

create database if not exists ry-cloud character set=’utf8’;
use ry-cloud;
source /etc/mysql/conf.d/ry_20210908.sql;
source /etc/mysql/conf.d/quartz.sql;

source /etc/mysql/conf.d/ry_config_20220114.sql;
source /etc/mysql/conf.d/ry_seata_20210128.sql;

六、启动 redis&nacos

一开始弄错了,这里的 redis 和 nacos 同样在 docker 中进行安装配置
docker 版本

docker pull redis:latest
docker run -itd —name redis-test
—restart=always
-p 6379:6379 redis

  • 安装并启动 nacos

docker 版本

docker pull nacos/nacos-server
mkdir -p /data/nacos

修改配置文件
这里有一个 bug,url 中的 localhost 需要改为公网 ip,否则会指向 docker

db mysql

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456

启动 nacos

docker run —name nacos
-d -p 8848:8848
-p 9848:9848
-p 9849:9849
—privileged=true
—restart=always
-e MODE=standalone
-v /data/docker/logs/nacos:/home/nacos/logs
-v /data/docker/nacos/conf/application.properties:/home/nacos/conf/application.properties
-e PREFER_HOST_MODE=hostname
—restart=always
nacos/nacos-server

docker run
—name nacos -d
-p 8848:8848
-p 9848:9848
-p 9849:9849
—privileged=true
—restart=always
-e JVM_XMS=256m
-e JVM_XMX=256m
-e MODE=standalone
-e PREFER_HOST_MODE=hostname
-e SPRING_DATASOURCE_PLATFORM=mysql
-e MYSQL_SERVICE_HOST=localhost
-e MYSQL_SERVICE_DB_NAME=ry-config
-e MYSQL_SERVICE_PORT=3306
-e MYSQL_SERVICE_USER=root
-e MYSQL_SERVICE_PASSWORD=123456
-v /data/docker/logs/nacos:/home/nacos/logs
-v /data/docker/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
-v /data/docker/nacos/data:/home/nacos/data
nacos/nacos-server

测试访问 nacos
bug:无法访问
若依の环境部署(云) - 图8

查看该 nacos 容器的日志

docker logs 1927f0e7df88 #日志很长,找到关键原因 No Database Set,数据库配置失败

  • 修改 ip
  • 关闭防火墙

参考:https://ask.csdn.net/questions/7446721

七、启动后端项目

mvn install

若依の环境部署(云) - 图9
直接运行(首次)

java -jar ruoyi-gateway/target/ruoyi-gateway.jar
java -jar ruoyi-auth/target/ruoyi-auth.jar
java -jar ruoyi-modules/ruoyi-system/target/ruoyi-modules-system.jar

后台运行

nohup java -jar ruoyi-gateway/target/ruoyi-gateway.jar >/dev/null &
nohup java -jar ruoyi-auth/target/ruoyi-auth.jar >/dev/null &
nohup java -jar ruoyi-modules/ruoyi-system/target/ruoyi-modules-system.jar >/dev/null &

前端配置步骤

一、配置 node 环境

下载 node 安装包,通过 winSCP 上传到服务器

解压

tar -xf node-v16.14.1-linux-x64.tar.xz #修改/etc/profile
export NODE_HOME=/data/service/node-v16.14.1-linux-x64
export PATH=若依の环境部署(云) - 图10NODE_HOME/bin

刷新权限,检查是否配置成功

[root@VM-16-11-centos tmp]# source /etc/profile
[root@VM-16-11-centos tmp]# node -v
v16.14.1
[root@VM-16-11-centos tmp]# npm -v
v8.5.0

二、导入依赖

cd /data/gitee/RuoYi-Cloud

npm config set registry https://registry.npm.taobao.org
cd ruoyi-ui
npm install

三、运行项目

nohup npm run dev >/dev/null &

可能是服务器比较便宜,这样直接运行 CPU 一直炸

四、打包发布到 nginx

首先安装 nginx 前置软件

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel #下载 nginx 软件安装包
cd /data/tmp
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0 #设置安装目录为/usr/local/nginx
./configure —prefix=/usr/local/nginx
make
make install

修改 nginx 配置文件

  1. worker_processes 1;
  2. events {
  3. worker_connections 1024;
  4. }
  5. http {
  6. include mime.types;
  7. default_type application/octet-stream;
  8. sendfile on;
  9. keepalive_timeout 65;
  10. server {
  11. listen 80;
  12. server_name localhost;
  13. charset utf-8;
  14. location / {
  15. root /data/gitee/RuoYi-Cloud/ruoyi-ui/dist;
  16. try_files $uri $uri/ /index.html;
  17. index index.html index.htm;
  18. }
  19. location /prod-api/ {
  20. proxy_set_header Host $http_host;
  21. proxy_set_header X-Real-IP $remote_addr;
  22. proxy_set_header REMOTE-HOST $remote_addr;
  23. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  24. proxy_pass http://localhost:8080/;
  25. }
  26. error_page 500 502 503 504 /50x.html;
  27. location = /50x.html {
  28. root html;
  29. }
  30. }
  31. }

启动 nginx

cd /usr/local/nginx/sbin/
./nginx

访问:http://150.158.22.170/
成功登录!
若依の环境部署(云) - 图11

New Bugs

Navicat 无法连接数据库

根本原因:被黑客删库。
若依の环境部署(云) - 图12
搞笑,我一个若依项目你都黑,
重新给数据库授权:

  1. GRANT ALL PRIVILEGES ON *.* TO'用户名'@'%' IDENTIFIED BY '***' WITH GRANT OPTION;
  2. flush privileges;

重新导入 SQL 文件。