Linux系统上部署 基于Spring Boot+Vue的前后端分离项目笔记

前言

毕业设计完成后,想实践一下如何部署到Linux服务器上。
主要实现方法:前端Vue项目打包后部署到nginx服务器上,后端SpringBoot项目打成jar包直接跑。
本文章主要介绍:Nginx安装与配置、JDK8安装与配置、MySQL5.7安装与配置、Vue项目打包、SpringBoot项目打包

1、Linux环境准备

有条件买云服务器,没条件用VMWare。我这里用后者演示。
我用的CentOS7
(1)首先安装系统镜像参考:虚拟机安装CentOS7教程
(2)配置网络 Net或桥接 参考我的另一篇文章:Net模式&桥接模式的配置教程
这里演示用Net模式

2、Nginx安装与配置

1)官网下载Linux版本的:http://nginx.org/en/download....
Linux系统上部署 基于Spring Boot+Vue的前后端分离项目笔记_第1张图片

在Linux官网下载对应版本地nginx压缩包(以tar.gz结尾),将其上传到Linux服务器上,使用如下命令解压 nginx 安装包(根据下载的nginx版本更换对应版本):

tar -zxvf nginx-1.18.0.tar.gz

进入nginx-1.18.0目录

cd nginx-1.18.0

make 编译安装它:

  ./configure
  make
  make install

安装 zlib 库

cd ~
wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install

安装 SSL

yum -y install openssl openssl-devel

安装 pcre

yum -y install pcre-devel

nginx 服务的常用命令

cd /usr/local/nginx/sbin/
./nginx  启动
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件
ps aux|grep nginx  查看nginx进程

这个时候访问虚拟机配置的 ip 地址,如果可以打开下面这样一个页面,说明 nginx 启动成功:
Linux系统上部署 基于Spring Boot+Vue的前后端分离项目笔记_第2张图片

配置nginx.conf文件

vim /usr/local/nginx/conf/nginx.conf

增加如下配置:

    server {
            listen       80;
            server_name  localhost;
            #重要
            location / {
                root /usr/local/nginx/html/dist;  #前端项目存放在nginx中的位置
                index  index.html index.htm;
                try_files $uri $uri/ /index.html;  #防止刷新后自动跳到自带404页面
            }

在修改了配置文件后需要重新加载配置文件

/usr/local/nginx/sbin/nginx -s reload

至此nginx就配置好了。

3、安装 JDK1.8

前提:

#查看默认安装的jdk
[root@huagang ~]# rpm -qa|grep openjdk -i
java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
#如果显示如上,先卸载
[root@huagang ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
[root@huagang ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
[root@huagang ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
[root@huagang ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
[root@huagang ~]# rpm -qa|grep openjdk -i
[root@huagang ~]# 

1、官网下载JDK1.8:https://www.oracle.com/java/t...

2、上传到Linux的 /home/ 文件下

3、在/home下创建一个目录java, 然后将压缩包解压到 java目录中

tar -zxvf jdk-8u331-linux-x64.tar.gz -C java

4、将java目录移动到 /usr/local 下

 mv java /usr/local

5、配置环境变量(classpath现在不需要配了,配置其他两项就可以了)

vim /etc/profile
#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_331
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

6、让配置文件生效

source /etc/profile

7、java -version 进行验证是否成功

4、安装 MySQL5.7

1、查看是否安装过
rpm -qa |grep -i mysql 查看是否安装mysql安装包 或者 yum list installed | grep mysql
如果有内容说明已经按照
卸载命令:
yum remove mysql-community-common-5.7.20-1.el7.x86_64
yum remove mysql-community-client-5.7.20-1.el7.x86_64
yum remove mysql57-community-release-el7-11.noarch
yum remove mysql-community-libs-5.7.20-1.el7.x86_64
yum removemysql-community-server-5.7.20-1.el7.x86_64

2 下载并安装MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

3、安装MySql
yum -y install mysql57-community-release-el7-10.noarch.rpm

注意:(在执行安装MySQL服务器命令可能会遇见这个问题)
源 “MySQL 5.7 Community Server” 的 GPG 密钥已安装,但是不适用于此软件包。请检查;
解决方法:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

4、处理完问题后开始安装MySQL服务器。
yum -y install mysql-community-server

5、检查是否开机启动Mysql
systemctl is-enabled mysqld.service

6、设置开机启动Mysql
systemctl enable mysqld.service

7.启动Mysql服务
systemctl start mysqld.service

7、查看默认密码
grep 'temporary password' /var/log/mysqld.log
我这显示
2022-04-29T06:29:20.081674Z 1 [Note] A temporary password is generated for root@localhost: flgJSNaSa4)s
(如果没有生成
# 清理残留内容
rm -rf /var/lib/mysqllue
# 重启MySQL服务器
systemctl restart mysqld
# 重新生成初始密码)

8、第一次使用上面的初始密码登录
mysql -uroot -p

9.mysql5.7以后密码不能太简单,我们可以把密码策略改了,这样就可以用123456了
set global validate_password_length=6;
set global validate_password_policy=0;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

10、开启mysql的远程访问(注意:下面命令开启的IP是 192.168.0.1,如要开启所有的,用%代替IP):
grant all privileges on *.* to 'root'@'192.168.0.1' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
然后再输入下面命令(mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问)
flush privileges; 

11查看字符编码
show variables like 'chara%';

修改编码:
vim /etc/my.cnf
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

保存退出并重启mysql服务  systemctl restart mysqld.service

12、如果防火请没有关闭需要开放端口3306,如果防火请关闭了就不需要这一步了
#查询端口是否开放
firewall-cmd --query-port=3306/tcp
# 开放3306端口
firewall-cmd --permanent --add-port=3306/tcp
# 移除端口
firewall-cmd --permanent --remove-port=3306/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

做完以上配置后,可以尝试用Navicat连接这个数据库。
然后执行项目的SQL文件导入数据,我相信大家都ok,这就不再演示。

5、Vue项目打包部署

1)修改main.js中的baseURL的localhost以及所有有涉及到localhost的地方均改为申请到的阿里云服务器的公网IP。

2)然后在终端执行命令:

npm run build

打包后的文件在生成的dist文件夹中,前端项目打包完成。

3)将打包好的dist文件夹上传到/usr/local/nginx/html/中

4)启动nginx,在浏览器中访问前端项目。

6、Spring Boot 项目打包部署

1)修改properties.yml文件中的localhost为申请到的阿里云服务器的公网IP或者虚拟机中配置的IP。检查是否需要修改数据库密码。检查无误后打包。
2)使用maven打包成jar包
Linux系统上部署 基于Spring Boot+Vue的前后端分离项目笔记_第3张图片

3)将打包好的jar文件上传到Linux服务器中的/home/javaProject,然后执行运行命令:

java -jar cecms.jar

4)让项目一直在云服务器上运行的linux命令有两种方式参考:
方案一:https://www.cnblogs.com/21556...
方案二(推荐):https://www.csdn.net/tags/Mtj...

7、结束

至此,前后端项目都部署完了,你可以使用IP地址进行访问。有问题或需要更正的评论区留言,感谢大家观看!

你可能感兴趣的:(Linux系统上部署 基于Spring Boot+Vue的前后端分离项目笔记)