以下部署基于Centos7 系统环境
1. 安装mysql
卸载Centos7自带mariadb
# 查找
rpm -qa|grep mariadb
得到结果:mariadb-libs-5.5.52-1.el7.x86_64
# 卸载
rpm -e mariadb-libs-5.5.52-1.el7.x86_64 --nodeps
解压mysql
# 创建mysql安装包存放点
mkdir /usr/server/mysql
# 解压
tar xvf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar
mysql安装
# 切换到安装目录
cd /usr/server/mysql/
yum -y install libaio
yum -y install libncurses*
yum -y install perl perl-devel
# 安装,一条一条输入,不然最后一个不执行
rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm
启动mysql
#启动mysql
systemctl start mysqld.service
#查看生成的临时root密码
cat /var/log/mysqld.log | grep password
修改初始的随机密码
# 登录mysql
mysql -u root -p
Enter password:
#输入在日志中生成的临时密码
# 更新root密码 设置为123456
set global validate_password_policy=0;
set global validate_password_length=1;
set password=password('123456');
授予远程连接权限
grant all privileges on *.* to 'root' @'%' identified by 'root';
# 刷新
flush privileges;
设置mysql开机自启动
#mysql的启动和关闭 状态查看
systemctl stop mysqld
systemctl status mysqld
systemctl start mysqld
#建议设置为开机自启动服务
systemctl enable mysqld
#查看是否已经设置自启动成功
systemctl list-unit-files | grep mysqld
2.配置nginx
(如果前端也要配置到服务器上的话,需要nginx,如果仅后端,可忽略这一步)
yum install epel-release
yum update
yum -y install nginx
nginx命令
systemctl start nginx #开启nginx服务
systemctl stop nginx #停止nginx服务
systemctl restart nginx #重启nginx服务
3. 配置jdk
下载jdk17的linux版本即可,若依要求jdk>1.8,我用的17也没问题。
解压
tar -zvxf jdk-17_linux-x64_bin.tar.gz
添加java环境变量,编辑 /etc/profile 文件
vi /etc/profile
# 文件末尾增加
export JAVA_HOME=/usr/server/jdk1.8.0_131
export PATH=${JAVA_HOME}/bin:$PATH
执行source命令,使配置立即生效
source /etc/profile
java -version 输出jdk版本,即代表java配置成功
后端至此完成!服务器运行jar包即可,踩坑可见另一篇博客:
ruoyi的spring boot后端 部署到阿里云服务器踩坑指南-CSDN博客
注:使用XShell远程连接服务器,执行java -jar xxx.jar命令,当退出终端或者关闭Xshell时,后端项目就会退出,此时无法访问网页,如果想让后端jar一直运行,采用如下命令:
nohup java -jar xxx.jar>log.txt &
然后一定要输入exit回车退出终端,但网页依旧可以访问
如果想结束jar项目 ps -ef查看jar进程的pid,再kill pid即可结束
如果前端也要配置到服务器上,接着看
需要修改vue.config.js中,target为后端 的 公网ip:端口
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://8.152.162.254:8080`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
}
}
},
打包vue程序
npm run build:prod
会生成一个dist文件夹,将其上传到你设置的目录,例如我的上传的目录为/usr/app
配置nginx
进入到/etc/nginx/conf.d目录,创建vue.conf(名字随便起,只要是以.conf结尾即可,nginx会自动读)文件,vim编辑文件,输入:
server {
listen 80;
server_name localhost; 随便写
location / {
root /usr/app/dist; #之前上传的前端vue项目生成的dist存放的路径
index index.html;
# 解决f5情况下 资源404,如果不加后面两句,若依在登录页刷新会报404,登出时也会报404
try_files $uri $uri/ /index.html;
expires 7d;
}
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://xxx.xxx.xxx.xxx:8080/; #后端服务器公网ip
}
}
使配置生效
nginx -s reload