SpringBoot快速部署(2)—不使用docker的常规方法

一、软件下载和部署前准备

安装软件
获取软件安装包 然后上传到服务器的 /tmp 目录下。
软件:nginx、jdk、mysql 

下载 X-shell 和 Xftp 注意:这个页面下载安装的才可以免费使用。
家庭/学校免费 - NetSarang Website

 安装jdk 1.8

tar -zxvf /tmp/jdk-8u371-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_371 /usr/local/java

vi /etc/profile

# 下面这两行代码放在profile文件的最下面
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile

# 验证
java -version

安装 nginx

#安装gcc
yum install gcc-c++

#安装PCRE pcre-devel
yum install -y pcre pcre-devel

#安装zlib
yum install -y zlib zlib-devel

#安装Open SSL
yum install -y openssl openssl-devel

#解压、编译 nginx 并安装
mkdir /usr/local/nginx
tar -zxvf /tmp/nginx-1.24.0.tar.gz -C /usr/local/nginx

cd /usr/local/nginx/nginx-1.24.0
# 编译安装
./configure --with-http_stub_status_module --with-http_ssl_module
# 最后执行这个
make && make install

nginx 命令

cd /usr/local/nginx/sbin

# 进入到这个目录后,可以通过如下的命令来启动,查看,停止,重启 nginx
./nginx     # 启动

ps -ef | grep nginx  # 查看
./nginx -s stop      # 停止
./nginx -s reload    # 重启

 ps -ef | grep nginx 查看

        此时打开浏览器则可以看到NGINX启动的界面 (默认是 80 端口,如果打开不成功,可以查看服务器的安全组中该端口是否已经打开)

nginx 配置

在 /usr/local/nginx/conf  路径中找到该文件

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   /home/server/honey2024/vue/dist;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
}

配置完之后记得重启 nginx
执行命令重启: 先   cd /usr/local/nginx/sbin  
                         然后         ./nginx -s reload  

安装MySQL

linux 系统会自动携带一个数据库,我们需要把它给卸载掉
通过以下代码可以查看 mariadb 并卸载

rpm -qa | grep mariadb
yum remove -y mariadb-connector-c-3.1.11-2.oc8.1.x86_64
yum remove -y mariadb-connector-c-config-3.1.11-2.oc8.1.noarch

不过这种是没有找到匹配的,继续往下就行。

下载 mysql 并 上传到 /tmp 目录
安装 mysql 命令:

mkdir /data/mysql
tar -zxvf /tmp/mysql-5.7.42-el7-x86_64.tar.gz -C /usr/local
mv /usr/local/mysql-5.7.42-el7-x86_64 /usr/local/mysql

# 添加用户组
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data/mysql


cd /usr/local/mysql
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql --initialize

#  将mysql加入到服务中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

# mysql快捷方式
ln -s  /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
ln -s /usr/lib64/libncurses.so.6.1 /usr/lib64/libncurses.so.5

记住临时密码 后面要用

配置 mysql 配置文件 my.cnf
vi  /etc/my.cnf

[mysqld]
datadir=/data/mysql
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
# skip-grant-tables
# # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

启动 mysql: **service mysql start **
开机启动: **chkconfig mysql on **
登录 mysql: **mysql -uroot -p **
输入临时密码进入 mysql

修改密码并设置权限:

SET PASSWORD = PASSWORD('123456');

use mysql;
update user set host ='%'where user ='root' and host ='localhost';
flush privileges;
exit;

部署前准备—前端需要修改的

.env.production

VUE_APP_BASEURL='http://XXXXXXXX:9090'

main.js 设置全局变量$baseUrl

Vue.prototype.$baseUrl=process.env.VUE_APP_BASEURL

request.js

const request = axios.create({
    baseURL: process.env.VUE_APP_BASEURL,   // 后端的接口地址
    timeout: 30000
})

文件上传地址修改、导出地址修改,vue 工程全局搜索 localhost:9090 替换成 $baseUrl

:action="𝑏𝑎𝑠𝑒𝑈𝑟𝑙+′/𝑓𝑖𝑙𝑒/𝑢𝑝𝑙𝑜𝑎𝑑′"∗∗∗∗:𝑎𝑐𝑡𝑖𝑜𝑛="baseUrl+′/file/upload′"∗∗∗∗:action="baseUrl + '/user/import'"

:action="$baseUrl + '/file/upload'"

前端修改好之后将dist包放在对应的目录下,然后启动NGINX即可

二、部署 Java

创建文件夹:mkdir -p /home/server/honey2024
上传 jar 包到服务器 /home/server/honey2024/java 目录
设置 application.yml 覆盖

添加 启动和停止脚本
cd /home/server/honey2024/java
vi start.sh

NAME=springboot-0.0.1-SNAPSHOT.jar
nohup java -jar $NAME > server.log 2>&1 &
echo 'start success'
PORT=9090
pid=`netstat -tnlp | grep $PORT | grep -v grep | awk '{print $7}' | awk -F/ '{print $1}'`
if [ ${pid} ]; then
    kill -9 $pid
    echo "kill $PORT"
else
    echo 'stop sucess!'
fi

去除脚本文件里的特殊符号(可选)

sed -i 's/\r//' start.sh
sed -i 's/\r//' stop.sh

 

启动后台程序

修改 application.yml 里面的 ip 为服务器的公网 IP
启动程序:

cd /home/server/honey2024/java
./start.sh

实时查看日志:tail -100f server.log 

输入网址后可以查看:(记得在安全组中将后端端口加上打开,否则访问不了)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

弱智吧”,人类抵御AI的最后防线

“写遗嘱的时候错过了deadline怎么办?” “怀念过去是不是在时间的长河里刻舟求剑?” “英语听力考试总是听到两个人在广播里唠嗑,怎么把那两个干扰我做题的人赶走?” 以上这些饱含哲学但好像又莫名其妙的问题,出自…

简易概况广告变现

广告变现是指媒体或平台通过向用户展示广告主的广告,从而获得收入的过程。 广告变现就像是一个店主,他需要一个吸引人的店面,提供优质的内容和服务,然后在店里摆放一些别人的商品或服务,每当有客人看了或买了这些商品或…

计算机SCI期刊,中科院3区,IF=3.4,难度不大,无预警风险

一、期刊名称 Automated Software Engineering 二、期刊简介概况 期刊类型:SCI 学科领域:计算机科学 影响因子:3.4 中科院分区:3区 三、期刊征稿范围 自动化软件工程是一份档案,同行评审的期刊,发表研…

Win10系统自带输入法英文变大的问题

现在习惯使用Windows自带的五笔输入法了,但一直以来总会遇到输入时突然英文字母变大了,相隔空间也变大了的情况。 asdfghkl asdfghkl 后来知道这是输入法变…

汇凯金业:上海黄金交易所简介

上海黄金交易所(SGE)是中国唯一合法进行黄金交易的国家级市场,遵循公开、公平、公正和诚实信用的原则,在中国人民银行的领导下,于2002年10月30日正式开业。交易所不以盈利为目的,实行自律性管理。 组织形式及会员 交易所实行会员…

腾讯云和windows11安装frp,实现内网穿透

一、内网穿透目的 实现公网上,访问到windows上启动的web服务 二、内网穿透的环境准备 公网服务器、windows11的电脑、frp软件(需要准备两个软件,一个是安装到公网服务器上的,一个是安装到windows上的) frp下载地址下载版本 1.此版本(老版…

算法:11. 盛最多水的容器

11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你…

Linux LCD屏幕上电不显示

一、问题描述 LCD屏幕点不亮 二、相关配置 timing获取:(1280x800) 最好的获取方式是通过询问LCD屏厂获得确切的时序参考值。其次或是从屏手册或者Driver IC手册中查找(向屏厂索要这些文档)。 至少需要从屏厂获得Width&#xff…

VBA中发送邮件的多种途径?如何实现批发?

VBA发送邮件的常用方法有哪些?VBA怎么设置自动发信? 通过电子邮件进行沟通是必不可少的一部分。利用VBA自动化发送邮件,可以极大地提高工作效率。AokSend将探讨VBA中发送邮件的多种途径,帮助你了解如何在不同的情况下选择合适的方…

CAPL如何发送一条SYN报文

在TCP协议中,发起连接的Client端首先会发送一条SYN报文,用来发起TCP连接请求。这条SYN报文的本质是TCP报文,只不过flags字段中SYN位置为1。 且SYN的序列号是随机的,所以可以用一个随机函数来生成随机数。而ack确认号是0。 TCP报文和UDP报文一样,需要设置源和目标端口号,…

超详解——Python模块文档——基础篇

目录 1. Unix起始行 示例: 2. 对象和类型 示例: 3. 一切都是对象 示例: 4. 理解对象和引用 示例: 5. 理解对象和类型 示例: 6. 标准类型 示例: 7. 其他内建类型 示例: 8. 类型的类…

【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 对话框 | 创建模态及非模态对话框 文章编号:Qt 学…

全方位·多层次·智能化,漫途水库大坝安全监测方案

党的十九届五中全会提出,到2025年前,完成新出现病险水库的除险加固,配套完善重点小型水库雨水情和安全监测设施,实现水库安全鉴定和除险加固常态化。 加快推进小型水库除险加固。加快构建气象卫星和测雨雷达、雨量站、水文站组成…

Python Runtime指标采集

一、背景 最近在复盘Python的相关内容,到了监控相关部分发现,例如像Golang采集Runtime相关指标,我们可以使用Golang的Promethues客户端SDK进行采集metrics指标。 这些指标就包括了程序的CPU利用率、内存使用率、内存使用字节数、协程数量、GC耗时、GC发生…

抖音 根据sec uid获取个人详细信息(性别、年龄、属地、关注数、粉丝数、简介等)

本文带来用户的secuid获取用户信息以及其他基本信息: 话不多说看效果: 第一步输入用户sec_uid 根据secuid获取到用户基本信息: 可以支持接口批量转换,欢迎咨询

什么是NLP-自然语言处理

什么是NLP-自然语言处理 什么是NLP开通NLP新建项目创建模型 什么是NLP NPL是面向算法小白用户的行业自适应标注、训练和服务平台。该产品支持文本实体抽取、文本分类、关键短语抽取、情感分析、关系抽取、短文本匹配、商品评价解析等 NLP 定制化算法能力,用户无需拥…

NPN和PNP三极管开关

当使用三极管当电子开关时,对于控制端输入信号,若要求高电平导通时,使用NPN型三极管;若要求低电平导通时,使用PNP三极管。还有在控制电源线路中,一般使用NPN三极管控制负极,PNP三极管控制正极。…

【Excel技巧】Excel打开密码的两种设置方法!

excel文件打开密码可以再打开文件时输入密码查看文件内容,这样就可以保护文件内容不被任何人查看了,今天分享excel打开密码的两种设置方法给大家。 方法一: 点击excel中的【文件】功能,找到【信息】-【保护工作表】-【用密码进行…

C++九州控制地址结构else 陈述

else如同英文字义,九州qa98錪cc否则的意思,通常放在if的后面,若if的条件为真,就执行if底下大括弧围起来的程式区块,若为假,就执行else底下大括弧围起来的程式区块。 形式如下: 这个概念用于二选…

postman教程-19-mock测试

上一小节我们学习了Postman接口参数化方法,本小节我们讲解一下Postman mock测试的方法。 一、什么叫mock测试 mock测试就是在测试过程中,对某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便于测试的一种测试方法&#xff0c…