SpringBoot完整项目部署流程(软件安装-前后端部署)

SpringBoot完整项目部署流程

安装Jdk

使用XTFP工具将jdk的二进制发布包上传到Linux

在这里插入图片描述

解压安装包

tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local

解压完毕

在这里插入图片描述

配置环境变量,使用vim命令修改 /etc/profile文件,在文件末尾加入如下配置

JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH

重新加载profile文件,使更改的配置立即生效,命令为

source /etc/profile

检查安装是否成功,命令为

java -version

在这里插入图片描述

安装Tomcat

使用XTFP工具将tomcat的二进制发布包上传到Linux

在这里插入图片描述

解压安装包,命令为

tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local

解压完成

在这里插入图片描述

进入Tomcat的bin目录启动服务,命令

在这里插入图片描述

sh startup.sh

或者

./startup.sh

在这里插入图片描述

验证Tomcat启动是否成功

  • 查看启动日志
more /usr/local/apache-tomcat-7.0.57/logs/catalina.out 

在这里插入图片描述

tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out 

在这里插入图片描述

  • 查看进程
ps -ef | grep tomcat

在这里插入图片描述

防火墙操作

  • 查看防火墙操作
firewall-cmd --state

或者

systemctl status firewalld

在这里插入图片描述

  • 暂时关闭防火墙
systemctl stop firewalld
  • 永久关闭防火墙
systemctl disable firewalld
  • 开启防火墙
systemctl start firewalld
  • 查看所有打开的端口
netstat -anp
  • 查询指定端口是否已开
firewall-cmd --query-port=666/tcp
  • 开放指定端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
  • 移除指定端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
  • 立即生效
firewall-cmd --reload
  • 查看开放的端口
firewall-cmd --zone=public --list-ports

开放8080端口,并访问

在这里插入图片描述

在这里插入图片描述

Redis安装

Redis安装(Linux环境只考虑)

下载地址:Redis

1. 下载安装最新版的gcc编译器

安装C语言的编译环境

yum install centos-release-scl scl-utils-buildyum install -y devtoolset-8-toolchainscl enable devtoolset-8 bash

测试 gcc版本

gcc --version

2. 下载redis-6.2.1.tar.gz放/opt/soft目录

解压缩

tar -zxvf redis-6.2.1.tar.gz

进入目录 执行make命令

cd redis-6.2.1make

如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件

执行命令解决

make distclean

在redis-6.2.1目录下再次执行make命令(只是编译好)

跳过make test 继续执行: make install

安装目录/usr/local/bin

查看默认安装目录:

redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何

redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲

redis-check-dump:修复有问题的dump.rdb文件

redis-sentinel:Redis集群使用

redis-server:Redis服务器启动命令

redis-cli:客户端,操作入口

3. 前台启动(不推荐)

前台启动,命令行窗口不能关闭,否则服务器停止

4. 后台启动(推荐)

备份redis.conf

拷贝一份redis.conf到其他目录

cp  /opt/redis-3.2.5/redis.conf  /myredis

后台启动设置daemonize no改成yes

修改redis.conf(128行)文件将里面的daemonize no改成 yes,让服务在后台启动

启动Redis

redis-server/myredis/redis.conf

用客户端访问:redis-cli

Redis关闭

单实例关闭

redis-cli shutdown

想要远程连接,修改配置文件

yes改为no
在这里插入图片描述
可视化工具连接
修改配置文件
注释掉bind 127.0.0.1
在这里插入图片描述
重启服务
测试连接
在这里插入图片描述
成功!

安装Mysql

检测系统当前安装MySQL数据库

检查当前系统中安装的所有软件

rpm -qa

查询当前系统中名称带mysql的软件

rpm -qa | grep mysql

查询当前系统中安装的名称带mariadb的软件

rpm -qa | grep mariadb

在这里插入图片描述

卸载已经安装的冲突软件

rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64

MySQL安装包上传到Linux并解压到指定目录

mkdir /usr/local/mysqltar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql

在这里插入图片描述

进入mysql目录准备安装

先进行升级

yum update

依次执行下列命令

rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpmrpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpmrpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpmyum install net-toolsrpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

启动mysql

查看mysql服务状态

systemctl status mysqld

启动mysql服务状态

systemctl start mysqld

开机启动

systemctl enable mysqld

查看已经启动的服务

netstat -tunlpnetstat -tunlp | grep mysql

查看mysql的进程

ps -ef |grep mysql

在这里插入图片描述

登录MySQL数据库,查阅临时密码

查看文件内容

cat /var/log/mysqld.log

查看文件内容包含password的行信息

cat /var/log/mysqld.log | grep password

在这里插入图片描述


登录MySQL,修改密码,开放访问权限

mysql -u root -p 临时密码

修改密码

set global validate_password_length=4;      #设置密码长度最低数
set global validate_password_policy=LOW;	   #设置密码安全等级低		
set password=password('root');			   #设置密码为rootgrant all on *.* to 'root'@'%'identified by 'root'; #开启访问权限flush privileges;

在这里插入图片描述

开放端口
查看开放的端口号

firewall-cmd --list-all

设置开放的端口号

firewall-cmd --add-service=http --permanentfirewall-cmd --add-port=3306/tcp --permanent

重启防火墙

firewall-cmd --reload

修改通配符为%

use mysql;select Host,User from user;update user set host = '%' where user ='root';

远程连接测试

在这里插入图片描述

安装Irzsz

yum install lrzsz.x86_64

在这里插入图片描述

输入

rz

在这里插入图片描述

安装Git

yum list gityum install git

在这里插入图片描述

在这里插入图片描述

安装Maven

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local

修改配置文件,加入如下内容

vim /etc/profile# maven配置
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATsource /etc/profilemvn -version# 修改配置内容如下
vim /usr/local/apache-maven-3.5.4/conf/settings.xml<localRepository>/usr/local/repo</localRepository>

在这里插入图片描述

在这里插入图片描述

安装Nginx

安装依赖包

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

或者通过wget下载Nginx安装包

wget https://nginx.org/download/nginx-1.16.1.tar.gz

解压

tar -zxvf nginx-1.16.1.tar.gz

安装

cd nginx-1.16.1./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_modulemake && make install

执行 ./configure报错

在这里插入图片描述

安装依赖包

yum -y install pcre-devel openssl openssl-devel

安装成功

在这里插入图片描述

make && make install

检查版本

cd /usr/local/nginx/sbin/./nginx -v./nginx -t

出现如下,即为正确

在这里插入图片描述

启动Nginx

./nginx

开放80端口

firewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --reload

访问成功

在这里插入图片描述

停止服务

./nginx -s stop

查看进程

ps -ef | grep nginx

重置配置文件

./nginx -s reload

配置全局命令

在这里插入图片描述

vim /etc/profilesource /etc/profile

配置成功

在这里插入图片描述

项目打包(手动部署)

在这里插入图片描述

上传到指定目录 /usr/local/app 目录下

在这里插入图片描述

手工部署项目

改为后台运行,并将日志输出到日志文件

nohup java -jar boot工程.jar &>hello.log &

在这里插入图片描述

浏览器输入访问项目

访问成功

在这里插入图片描述

在这里插入图片描述

自动化执行脚本(自动部署)

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================echo 停止原来运行中的工程
APP_NAME=helloworldtpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; thenecho 'Stop Process...'kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; thenecho 'Kill Process!'kill -9 $tpid
elseecho 'Stop Success!'
fiecho 准备从Git仓库拉取最新代码
cd /usr/local/helloworldecho 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`cd targetecho 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成

通过Shell脚本自动部署项目

设置静态ip

修改文件 /etc/sysconfig/network-scripts/ifcfg-ens33

ifcfg-ens33 每个人不同,一般都是ifcfg-ensxxxxxxxxxx

HWADDR=00:0C:29:8C:9F:BF
TYPE=Ethernet
BOOTPROTO=static  #使用静态IP地址,默认为dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=dfebdc59-a7da-4377-ac8e-e0346a8b71f6
ONBOOT=yes #开机是否使用
IPADDR=192.168.18.128 #设置的静态IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.18.2  #网关地址
DNS1=218.2.135.1 #DNS服务器

注意

在这里插入图片描述

前端部署

打包前端项目dist,上传到指定nginx下的指定的目录

在这里插入图片描述

更改nginx配置文件

cd /usr/local/nginx/conf/vim nginx.conf
	 location / {root   html/dist;index  index.html index.htm;}location ^~ /api/ {rewrite ^/api/(.*) /$1 break;proxy_pass http://192.168.18.128:8080;}

在这里插入图片描述

下面的location配置根据项目来配置的,每个项目不同

后端部署

项目打包,上传到指定目录

在这里插入图片描述

在此目录下执行

java -jar boot工程.jar

改为后台运行并日志记录

nohup java -jar boot工程.jar &>hello.log &

也可以灵活的指定外部配置文件启动

java -jar boot工程.jar --spring.config.location=classpath:application.yml

在这里插入图片描述

访问项目

在这里插入图片描述

查看控制台正常打印

在这里插入图片描述

至此项目部署成功!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/94187.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux:ansible-playbook配置文件(剧本)

如果你还没有配置基础的ansible和一些基础用法可以去下面的链接 playbook是基于ansible的 Linux&#xff1a;ansible自动化运维工具_鲍海超-GNUBHCkalitarro的博客-CSDN博客 Linux&#xff1a;ansible自动化运维工具_鲍海超-GNUBHCkalitarro的博客-CSDN博客 Linux&…

MySQL高阶语句之常用查询

目录 常用查询 按关键字排序 区间判断及查询不重复记录 对结果进行分组 限制结果条目 设置别名 通配符 子查询 常用查询 &#xff08;增、删、改、查&#xff09; 对 MySQL 数据库的查询&#xff0c;除了基本的查询外&#xff0c;有时候需要对查询的结果集进行处理。 …

P13 VUE 二级menu实现

主要修改以下几个点&#xff1a; CommonAside.vue中 外层便利有孩子节点&#xff0c;关键词key是对应的标签&#xff0c;class动态图表渲染 内层遍历不能再用item&#xff0c;用subitem&#xff0c;遍历该item.childeren&#xff0c;关键词是path&#xff0c; <templat…

51单片机项目(7)——基于51单片机的温湿度测量仿真

本次做的设计&#xff0c;是利用DHT11传感器&#xff0c;测量环境的温度以及湿度&#xff0c;同时具备温度报警的功能&#xff1a;利用两个按键&#xff0c;设置温度阈值的加和减&#xff0c;当所测温度大于温度阈值的时候&#xff0c;蜂鸣器就会响起&#xff0c;进行报警提示。…

C++之std::search应用实例(一百八十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

好马配好鞍:Linux Kernel 4.12 正式发布

Linus Torvalds 在内核邮件列表上宣布释出 Linux 4.12&#xff0c;Linux 4.12 的主要特性包括&#xff1a; BFQ 和 Kyber block I/O 调度器&#xff0c;livepatch 改用混合一致性模型&#xff0c;信任的执行环境框架&#xff0c;epoll 加入 busy poll 支持等等&#xff0c;其它…

JixiPix Artista Impresso Pro for mac(油画滤镜效果软件)

JixiPix Artista Impresso pro Mac是一款专业的图像编辑软件&#xff0c;专为Mac用户设计。它提供了各种高质量的图像编辑工具&#xff0c;可以帮助您创建令人惊叹的图像。该软件具有直观的用户界面&#xff0c;使您可以轻松地浏览和使用各种工具。 它还支持多种文件格式&…

权限提升-Windows本地提权-AT+SC+PS命令-进程迁移-令牌窃取-getsystem+UAC

权限提升基础信息 1、具体有哪些权限需要我们了解掌握的&#xff1f; 后台权限&#xff0c;网站权限&#xff0c;数据库权限&#xff0c;接口权限&#xff0c;系统权限&#xff0c;域控权限等 2、以上常见权限获取方法简要归类说明&#xff1f; 后台权限&#xff1a;SQL注入,数…

划分字母区间【贪心算法】

划分字母区间 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。…

睿趣科技:开抖音小店挣钱吗到底

在当今数字化时代&#xff0c;社交媒体平台成为了创业者们寻找商机和赚钱的新途径。而抖音作为一款风靡全球的短视频分享平台&#xff0c;自然也成为了许多人开设小店、进行创业的选择之一。那么&#xff0c;开抖音小店能否真正实现盈利&#xff0c;成为了一个备受关注的话题。…

制造业物联网革命:智慧工厂数据采集与远程监控管理

智慧工厂是指运用现代信息技术和物联网技术&#xff0c;实现制造业生产过程的智能数字化。智慧工厂的工业设备不仅能够自动化运行&#xff0c;还可以通过网络技术帮助企业实现数据采集、远程监控与管理。4G工业网关便成为了智慧工厂通讯的重要组成部分&#xff0c;起到了连接工…

如何排查 Flink Checkpoint 失败问题?

分析&回答 这是 Flink 相关工作中最常出现的问题&#xff0c;值得大家搞明白。 1. 先找到超时的subtask序号 图有点问题&#xff0c;因为都是成功没失败的&#xff0c;尴尬了。 借图&#xff1a; 2. 找到对应的机器和任务 方法很多&#xff0c;这里看自己习惯和公司提供…