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
(项目是微服务版部署在腾讯云,与视频出入较大)
大致步骤
后端配置
- linux 下 jdk、maven、git 配置
- 添加 ssh 公钥和从 git 仓库克隆源代码
- linux 下 docker 安装
- docker 下 mysql 安装步骤
- 在 mysql 数据库中执行项目 sql 文件
- 修改配置,启动 redis&nacos
- 启动后端项目
前端配置
- 配置 node 环境
- 导入依赖
- 打包项目发布到 nginx
正文
前期准备
- 购买阿里云/腾讯云服务器
- 安装 winSCP+putty,连接至服务器
备注:winSCP 用于本机和服务器之间的文件传输,putty 则是远程登录控制。
后端配置步骤
一、linux 下 jdk、maven、git 配置
- 将压缩包上传到服务器上

- 解压
tar zxvf …
- 修改配置文件
vim /etc/profile
在 profile 文件中添加下面关于 jdk 和 maven 的配置
export JAVA_HOME=/data/service/jdk1.8
export PATH=JAVA_HOME/bin
export MAVEN_HOME=/data/service/maven-3.6.3
export PATH=MAVEN_HOME/bin
- 查看版本
输入下面命令检查是否配置完成
[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)
…
- 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 中

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 用户下重新配置后生效…

三、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

运行 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

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-serverdocker 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:无法访问

查看该 nacos 容器的日志
docker logs 1927f0e7df88 #日志很长,找到关键原因 No Database Set,数据库配置失败
- 修改 ip
- 关闭防火墙
参考:https://ask.csdn.net/questions/7446721
七、启动后端项目
mvn install

直接运行(首次)
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=NODE_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 配置文件
worker_processes 1;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;charset utf-8;location / {root /data/gitee/RuoYi-Cloud/ruoyi-ui/dist;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
cd /usr/local/nginx/sbin/
./nginx
访问:http://150.158.22.170/
成功登录!

New Bugs
Navicat 无法连接数据库
根本原因:被黑客删库。

搞笑,我一个若依项目你都黑,
重新给数据库授权:
GRANT ALL PRIVILEGES ON *.* TO'用户名'@'%' IDENTIFIED BY '***' WITH GRANT OPTION;flush privileges;
重新导入 SQL 文件。
