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

news2024/11/19 22:54:58

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

安装软件
获取软件安装包 然后上传到服务器的 /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 

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序猿大战Python——容器——字符串

字符串介绍 什么是Python容器 目标:了解Python容器是什么? 在现实生活中,我们知道容器是用来存放东西的,比如实验室里的烧杯等。 类似的,在Python中的容器是用来存放数据的。 与此同时,为了操作方便&…

springboot与flowable(3):启动、审批、各个Service服务

一、启动流程 流程定义与实例的关系类似于Java的类与对象,通过定义的id创建流程实例,编写测试代码: package org.example.flowabledemo2;import org.flowable.engine.RuntimeService; import org.flowable.engine.runtime.ProcessInst…

[论文阅读] (33)NDSS2024 Summer系统安全和恶意代码分析方向相关论文汇总

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期…

盲盒小程序支付流程优化与风险防控策略

在盲盒小程序中,支付流程的优化和风险防控是提升用户体验和确保交易安全的关键环节。下面我们将深入探讨这两个方面的问题和应对策略。 一、支付流程优化 在支付流程优化方面,我们主要关注以下几点: 简化操作流程:通过减少不必…

男士内裤什么品牌质量好?盘点口碑最好的五款男士内裤

面对市场上琳琅满目的款式与品牌,如何挑选出最适合自己的那一款男士内裤一直是大家最大的疑问!今天,我们为您带来实用的选购技巧,并推荐五款备受好评的男士内裤,信儿帮助大家避免选到一些质量不好的男士内裤&#xff0…

Mysql 查询数据量

Mysql 查询数据量 Mysql 查询数据库数据量Mysql查询指定数据表数据量 Mysql 查询数据库数据量 查询命令如下 SELECTTABLE_NAME AS 表名,TABLE_ROWS AS 记录数,TRUNCATE (data_length / 1024 / 1024, 2) AS 数据容量(MB),TRUNCATE (index_length / 1024 / 1024, 2) AS 索引容量…

DevExpress 控件和库

UI控件和组件 DevExpress WinForms包括以下Windows窗体库和控件: Grids and Editors Data Grid Tree List Vertical Grid Property Grid Gantt Control Data Editors and Simple Controls Office-inspired Ribbon, Bars and Menu Rich Text Editor Scheduler S…

短丝足视频:四川鑫悦里文化传媒有限公司

短丝足视频:文化审美的新趋势与道德边界的探讨 随着互联网技术的飞速发展,短视频平台已成为人们生活中不可或缺的一部分。四川鑫悦里文化传媒有限公司在众多短视频内容中,短丝足视频作为一种新兴的视觉艺术形式,逐渐引起了人们的…

硬盘危机:磁盘损坏无法打开的应对策略

在数字化时代,磁盘作为数据存储和传输的核心设备,其稳定性和安全性至关重要。然而,在日常使用过程中,我们时常会面临磁盘损坏无法打开的困境。这不仅会影响我们的工作效率,还可能造成重要数据的丢失。本文将深入探讨磁…

【设计模式】结构型-代理模式

在静谧的林间舞台上,代理轻舞着对象的梦想,掌控访问,引领旋律,真实与虚幻间,交织出灵动的诗篇。 文章目录 一、数据库操作的问题二、代理模式三、代理模式的核心组成四、运用代理模式五、代理模式的应用场景六、小结推…

基尼系数计算过程

引言 在探讨经济公平性时,基尼系数是一个不可忽视的指标。它不仅反映了一个国家或地区内部的收入分配状况,还对政策制定和社会稳定有着深远的影响。 基尼系数的定义 基尼系数是由意大利统计学家科拉多基尼在1912年提出的,用来衡量一个国家…

轻量级分布式事务实现:掌握最大努力通知方案

本文作者:小米,一个热爱技术分享的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! Hey,大家好,我是小米,一个喜欢研究技术的29岁程序员!今天我想跟大家分享一个在分布式系统中非常重要的概念——分布式事务。而我们今天的重点…

【面经总结】 Java基础 - 异常

异常 介绍一下 Java 的异常体系 Java 的异常体系是由 Throwable 类及其子类构成的。 Throwable 包含两个子类:Error(错误)和 Exception(异常) Error 表示错误,通常不需要程序员处理,如内存溢…

压缩视频大小的方法

在数字化时代,视频已经成为了我们生活中不可或缺的一部分。无论是工作、学习还是娱乐,视频都扮演着重要的角色。但是有时候视频容量会很大,压缩视频作为一种有效的解决方案,受到了越来越多人的关注。本文将介绍几种常见的压缩视频…

中国十大权威姓名学专家颜廷利:108个罗汉宝宝

在2008年5月12日,一场毁灭性的灾难降临在四川省的汶川县。强烈的地震波震撼动了大地,将什邡市妇幼保健院夷为平地,许多即将成为母亲的妇女被迫流落街头,处于无助和危险之中。然而,在这个混乱与绝望的时刻,一…

【备忘录】解决 .nuget 占用C盘大量空间问题

目录 背景修改目录查看命令小结 背景 最近C盘不够用了,一个个排除,发现 C:\Users\用户(比如:dell).nuget 这个文件夹与日俱增。这是平时我使用vs2022的nuget安装包的时候,很多包就会安装到这个默认的目录。大概占用C盘13个G,有没…

初阶 《函数》 5. 函数的嵌套调用和链式访问

5. 函数的嵌套调用和链式访问 函数和函数之间是可以根据实际的需求进行组合的&#xff0c;也就是互相调用 5.1 嵌套调用 #include <stdio.h> void new_line() {printf("hehe\n"); } void three_line() {int i 0;for (i 0; i < 3; i){new_line();} } int …

Unity 使用TextMeshPro实现图文混排

最后实现出的效果是这样的 开始实现 准备两张图 选中图片右键->Create->TextMeshPro->Sprite Asset 然后文件夹内就会出现一个同名的这个文件 新建一个Text Inspector面板 点击最底下的Extra Settings 然后把刚刚创建的SpriteAsset拖过来 放到对应的地方 然后…

AI助力密码安全:利用机器学习提升密码安全性

信息安全已经成为了当今数字世界的一个核心问题&#xff0c;随着互联网技术使用场景的不断增加&#xff0c;创建和管理安全的密码已经成为了保证在线账户安全的关键要求。本文将研究和探讨如何利用人工智能&#xff08;AI&#xff09;和机器学习技术来提升密码的安全性。 学习目…

2024年计算机相关专业是否还值得选择

目录 1.概述 1.1.就业前景 1.2.个人兴趣与能力 1.3.专业发展与趋势 1.4.市场饱和度与竞争 1.5.建议与展望 2.行业竞争现状 2.1.行业饱和度 2.2.新兴技术的影响 2.3.人才需求的变化 2.4.行业内的创新动态 2.5.保持从业者的竞争力 2.6.小结 3.专业与个人的匹配度判断…