基于腾讯云的若依项目部署
一、准备工作
需要的软件:
Xshell 链接:链接:https://pan.baidu.com/s/1DfvRdF4w6MtnD7yN7xbxcQ
提取码:ewi0
Xftp 链接:链接:https://pan.baidu.com/s/1r4zOvn1A3Gqslfs9Z3RS2A
提取码:rpdz
ruoyi项目的gitee地址 https://gitee.com/y_project/RuoYi或者链接:https://pan.baidu.com/s/114XlJz0suahtX7Fu3U4VEw
提取码:razj
若依项目打包好的jar包(端口为8081)链接:https://pan.baidu.com/s/1XJq9F4vOWM0jODWuXcMVfA
提取码:2iwd
本文整体参考:
开源项目安装部署详细笔记(作者:我是程序汪)
https://mp.weixin.qq.com/s?__biz=Mzg2ODU0NTA2Mw==&mid=2247484347&idx=1&sn=087b67ecbd0896146f4787dfe55d52be&source=41#wechat_redirect
新建目录
#tmp存放临时安装包
mkdir -p /data/tmp
安装 JDK1.8
链接:https://pan.baidu.com/s/1W_-QQkO1yjDwn9F7LxIQPA
提取码:aeb1
#利用xftp将安装包传入目录,再用xshell进入安装包目录,解压
cd /data/tmp
tar -zxvf jdk-8u181-linux-x64.tar.gz
#把解压出来的文件夹转移到统一的地方
mv /data/tmp/jdk1.8.0_181 /data/jdk1.8
#修改环境变量/etc/profile,JAVA_HOME修改为自己的jdk路径。
vim /etc/profile
export JAVA_HOME=/data/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
#使环境变量生效
source /etc/profile
#检查是否配置成功
java -version
Mysql >= 5.5.0 (推荐5.7版本)
使用docker的方式安装mysql,首先安装docker
#卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#安装 Docker Engine-Community
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安装MySQL5.7
#查看可用的 MySQL 版本
docker search mysql
#拉取5.7版本
docker pull mysql:5.7
#创建配置文件目录
mkdir -p /data/docker/mysql/conf
#进入配置文件目录,添加一个配置文件
cd /data/docker/mysql/conf
vim my.cnf
往里面写入
[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8
然后:wq保存退出
#启动镜像··
docker run -p 3306:3306 --name mysql -v /data/docker/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
启动MySQL5.7
docker exec -it mysql env LANG=C.UTF-8 bash
Docker命令整合(仅做整理,与流程无关)
#查看可用的 MySQL 版本
docker search mysql
#拉取5.7版本
docker pull mysql:5.7
#列出所有镜像
docker ps -a
#启动镜像
docker start 需要启动的镜像名
#进入镜像
docker exec -it mysql env LANG=C.UTF-8 bash
MySQL建表
#复制需要执行的sql文件到docker的映射目录中
cp /data/tmp/quartz.sql /data/docker/mysql/conf/
cp /data/tmp/ry_20210924.sql /data/docker/mysql/conf/
#进入docker容器中,执行sql文件
docker exec -it mysql env LANG=C.UTF-8 bash
#连接mysql
mysql -uroot -p
#创建数据库ry
create database if not exists ry character set='utf8';
#进入数据库,执行文件
use ry;
source /etc/mysql/conf.d/quartz.sql;
source /etc/mysql/conf.d/ry_20210924.sql;
修改项目中的端口等配置
#利用IDEA打开RuoYi-Admin
#修改application.yml的项目启动端口号(在这里改为8081)
vim application.yml
port: 8081
#修改application-druid.yml的数据源
vim application.yml
profile: /data/tmp
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
项目打成jar包
在IDEA中利用Maven将java项目打包成jar包
选择入口程序ruoyi-admin, 点击install, 如果提示缺少某个模块,就看缺什么就install什么,最后得到jar包,我们去找到它,并通过xftp上传到服务器/data/app/ruoyi
二、启动项目
在腾讯云开启对应端口
本次使用的是腾讯云的轻量级服务器,需要开启相应的端口
开启后再用Xshell查看防火墙,看端口开放了没:
查看开放防火墙的端口
netstat -lntup
发现没开,可以依次输入(这里开放的端口为8081,作者:感触life, http://blog.wymlw.cn/?p=418)
firewall-cmd --zone=public --add-port=需要开放的端口/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
执行jar包
把jar复制到程序目录,通过java命令行的方式启动jar包文件。因为本项目是使用了spring boot框架,所以jar中内置了web容器,不需要额外安装tomcat了。
cd /data/app/ruoyi-admin/
启动java项目(jar包)以下任选一条
下面这条好处是退出后仍在后台挂着,适合后面调的差不多了变动不大的时候用
nohup java -jar ruoyi-admin.jar &
如果上面那条出现无法写入日志的情形,可选下面
nohup java -jar ruoyi-admin.jar > /dev/null 2> /dev/null
如果还需要调试可以直接用下面这条,直接就可以在窗口看输入的日志,启动后可以按ctrl+z退出
java -jar ruoyi-admin.jar
- nohup和&用来表示本命令需要在后台执行,这样退出命令行程序后,java程序也不会停止。
- 访问项目的地址,验证项目是否成功运行。
本教程中设置的端口是8081,所以可以通过http://服务器公网IP:8081的方式进行访问,如果是在本地启动的程序,则直接访问http://localhost:8081即可。
三、可能遇到的问题
启动时提示端口被占用:
情形一: 普通端口
netstat -anp | grep 80
kill -9 进程id
情形二:MySQL3306的端口(关掉后会不断启动)
重启之后发现mysql 没有启动:
查看端口:fuser -v -n tcp 3306
删除进程:kill -s 9 pid
发现删除不了。。
停止服务:service mysqld stop
启动容器 docker start 容器id