SpringBoot+Vue项目部署

1:项目部署所使用的工具或资源

  1. Xshell:用于在本机Windows界面访问远端不同系统下的服务器。

    Xshell官网

        [Xftp官网](https://www.xshell.com/zh/xftp/)
    
  2. Postman:Postman是一个接口测试工具,本次部署中用于测试后端接口。

        相较于Postman,可以有更好的选择即ApiFox。在本次部署中为方便采用Postman。
    
  3. Nginx:Nginx是一个高性能的 HTTP 和反向代理服务器,可以作为静态页面的 web 服务器

  4. ECS服务器或者轻量应用服务器:
    可以选择大厂云服务器供应商,如阿里、腾讯、华为。本次部署中采用腾讯云服务器。

    我购买的云服务器配置是2核2GB,镜像为CentOS 7.6

2:SpringBoot项目部署

2.1更改跨域配置

==将跨域配置修改为云服务器的公网ip==

2.2项目打包

  1. 首先打开maven,在maven生命周期选择clear选项,clear命令是maven的清除命令,这一步的目的是为了清空target目录下的所有内容。

image-20230612164056909

  1. 选择package选项,将项目打成jar包。

img

  1. 控制台出现BUILD SUCCESS就表示打包成功

  1. 查看target目录,找到打包好的项目jar包。

2.3部署jar包

2.3.1上传jar包和静态资源文件

  1. 查看SpringBoot项目服务端口:我的是8090

img

  1. 在控制台开放相应端口

  1. 打开Xshell,输入云服务器公网ip创建一个新的会话。

  1. 双击刚刚创建的会话进行连接,输入用户名和密码

  1. 密码如果忘记的话到控制台中进行修改:

连接成功:

img

  1. 创建新目录,并将jar包通过Xftp传输到新创建的目录当中,==如果有静态资源的话就传输到jar包的同级目录下:==

2.3.2安装JDK

jdk官网:Java Downloads | Oracle

下载Linux版本:

![](https://imagebed-xuhuaiang.oss-cn-shanghai.aliyuncs.com/typora/6086d8eec6cc4e2c9331b551b0edc46a.png“ />

  1. 将JDK传输到项目目录

  1. 解压至自定义目录(一般是 /usr/local)
tar -xzvf jdk-8u291-linux-x64.tar.gz -C /usr/local/
  1. 配置环境变量。进入到/etc目录下,用vim编辑器在 profile 文件中添加四个变量。
export JAVA_HOME=/usr/local/jdk1.8.0_291
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=/bin:/usr/bin:$PATH:$JAVA_HOME/bin:$PATH


JDK11环境配置

export JAVA_HOME=/usr/local/jdk-11.0.18
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

4. 刷新配置

source /etc/profile

**四:查看jdk是否安装成功**
java -version

2.3.3安装MySQL

  1. 在控制台开发MySQL服务端口3306

![](https://imagebed-xuhuaiang.oss-cn-shanghai.aliyuncs.com/typora/98d084630daa489583549e6273c8a923.png“ />

  1. 在jar包同级目录下创建目录用于存放MySQL安装包

  1. 将MySQL安装包传输到刚刚创建的目录下,并解压

MySQL安装包百度云地址(版本8.0.26)
提取码:xha8

解压命令:

tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar 

  1. 查看解压后的MySQL压缩包

  1. ==清空linux自带的数据库==(因为CentOS自带一个老版本的mariadb-libs与当前mysql包的冲突,故需要先卸载,再安装)
rpm -qa | grep Mysql
rpm -qa | grep mariadb

卸载已有的数据库:(卸载会把这个包的依赖包也一起卸载)

yum -y remove mariadb-libs.x86_64

  1. 开始安装 mysql,依次执行下述命令

安装依赖:

yum install libaio

依次执行以下命令:

rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm
  1. 查看MySQL的安装情况:
rpm -qa|grep -i mysql

  1. 启动MySQL服务并查看服务状态
systemctl start mysqld.service
systemctl status mysqld.service 

  1. 查看MySQL初始化密码
grep "password" /var/log/mysqld.log

  1. 登录MySQL并修改初始密码
mysql -u root -p

修改密码:

注意:==此数据库的密码要和jar包项目所连接的数据库的密码相同,否则会连接不上==

mysql8.0之后的版本加入密码安全度检测机制,如果设置密码过于简单会导致报错

下面将更改MySQL的密码安全设置:

  1. 首先查看当前MySQL的密码安全设置
SHOW VARIABLES LIKE 'validate_password%';

  1. 更改密码长为6,密码安全策略等级为LOW
set global validate_password.length=6;
set global validate_password.policy=LOW;

  1. 查看更改后的密码安全设置

  1. 更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

2.3.4导入sql文件资源

  1. 打开Navicat,右键数据库->转储sql文件->结构和数据

  1. 将sql文件通过Xftp传输到项目目录中

img

  1. 创建数据库

==切记:创建的数据库名要和SpringBoot中配置文件当中配置的数据库url的数据库名保持一致。==

create database 数据库名;
show databases;

img

  1. 进入创建的数据库,导入sql文件资源
use 数据库名;
source sql文件相对路径/sql文件名

查询测试:

select * from 表名;

img

2.3.5运行jar包

  1. 进入jar包目录下

==nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。==

执行命令:

nohup java -jar myMusic-0.0.1-SNAPSHOT.jar &

在这里插入图片描述
在这里插入图片描述

  1. 查看日志文件
cat -n nohup.out

后端项目已经成功在8090端口运行

img

三:注意:如果操作不当导致jar包并没有在相应端口运行,但是已经占用进程的情况,再次运行jar包会报错的解决方案,

查看当前所有进程

ps sux

img

杀死该进程:

kill -9 进程ID

再次执行运行jar包命令即可。

2.4接口测试

  1. 打开Postman,输入要测试的接口,显示测试成功

在nohub.out日志文件中可以查看到日志信息(==需要在SpringBoot配置文件中配置mybatis-plus的日志文件==)

img

3.Vue项目部署

3.1更改代理服务器、axios、Vuex配置

将上述三种的url路径由原来的localhost(本地化部署时)更改为云服务器公网IP

  1. 代理服务器

img

  1. axios接口配置

  1. Vuex

3.2将项目打包上传到云服务器

  1. 打开控制台,输入以下命令打包
npm run build

  1. 在项目根目录下会自动生成一个dist文件夹

img

  1. 有两个Vue项目的另一个和上述操作一样,将两个dist文件分别重命名,等待Nginx安装完成后上传到服务器

3.3Nginx安装

Nginx百度云网盘地址

提取码:xha8

  1. 将下载好的Nginx安装包发送到服务器中项目的根目录下

  1. 解压安装包到当前目录
tar -xzvf nginx-1.18.0.tar.gz

img

安装包可以删除

  1. 安装相应依赖

安装gcc

yum install -y gcc

安装perl库

yum install -y pcre pcre-devel

安装zlib库

yum install -y zlib zlib-devel
  1. 进入到nginx-1.18.0目录下,并执行以下命令

源码编译安装

./configure

执行make命令

make

执行make install命令

make install

安装完成

  1. 启动Nginx服务

进入到以下目录并执行./nginx命令启动Nginx服务

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

img

在本地输入云服务器公网ip,出现以下界面就表示Nginx安装成功。

img

3.4部署第一个Vue项目

3.4.1将已经打包好的dist文件传送到nginx以下指定目录

cd /usr/local/nginx/html

img

3.4.1修改nginx.conf配置文件

  1. 进入到nginx目录下的conf目录,找到nginx.conf配置文件

img

  1. 使用vim编辑 nginx.conf配置文件

解决Vue项目部署后刷新404的问题

try_files $uri $uri/ /index.html;

  1. 在控制台开发相应端口

  1. 保存并退出,进入nginx的sbin目录下重启Nginx服务
./nginx -s reload

img

  1. 在本机浏览器输入公网ip和端口进行测试

img

3.5部署第二个Vue项目

  1. 通过vim编辑器进入nginx.conf配置文件,复制server部分,放在上一个server下面

  1. 在控制台开发相应端口

  1. 保存并退出,进入nginx的sbin目录下重启Nginx服务
./nginx -s reload

img

  1. 在本机浏览器输入公网ip和端口进行测试

img

==项目部署完成啦==

<img src="SpringBoot+Vue项目部署.assets/7479848120d00c122fbbf41fa0f9030f.jpg" alt="查看源图像" style="zoom:50%;" />


SpringBoot+Vue项目部署
https://xhablog.online/2022/07/30/SpringBoot+Vue项目部署/
作者
Xu huaiang
发布于
2022年7月30日
许可协议