(部署服务器系列二)服务器上安装springboot运行环境,发布并运行项目

news/2024/2/28 11:39:06

上篇文章已经安装CentOS,并且通过桥接连接上内网和外网,接下来我们先安装springboot项目运行环境,用XShell远程连接CentOS

1、下载安装JDK

  • 下载的JDK版本要和开发的项目一致,下载后用xftp工具传输到 /usr/local/src 目录下
    镜像下载地址:https://repo.huaweicloud.com/java/jdk/8u152-b16/
    在这里插入图片描述

解压文件到当前目录下

cd /usr/local/src
tar -xvf jdk-8u301-linux-x64.tar.gz
  • 设置环境变量
    先安装vim (编辑文件工具)
yum -y install vim
vim /etc/profile

在profile文件末尾添加下面配置(名称要根据自己的改下)

#配置JDK环境
export JAVA_HOME=/usr/local/src/jdk1.8.0_152
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib

保存退出,执行修改后配置

source /etc/profile
#测试java
java -version

2、安装mysql

安装wget(远程下载工具,文件下载到当前文件夹)

yum -y install wget

这里我们用yum安装mysql5.7:https://cloud.tencent.com/developer/article/1886339
碰到提示“公钥尚未安装”问题:https://blog.csdn.net/qq_53810226/article/details/124836467
安装完毕,启动mysql服务后,我们用本地mysql workbench远程连接服务器端mysql:
在这里插入图片描述
ssl没有设置,按test connection测试连接时报错:SSL connection error: protocol version mismatch
找到mysql的配置文件/etc/my.cnf,在[mysqld]下面加上skip_ssl,重启mysqld
再次连接数据库,成功。
新建项目要连接的数据库和添加项目所需数据。

3、在eclipse下用gradle打包springboot项目

前提是有一个springboot项目了,看以前的关于gradle springboot demo的文章
新建完成后我们就可以在Gradle Tasks中把springboot项目打包成一个jar程序
在这里插入图片描述
没有Gradle Tasks窗口在这里找
在这里插入图片描述
打包完后会在项目文件夹下的build/libs中生成一个jar包,这个就是我们编写的程序。

4、本地测试运行程序

  • 在jar包当前文件夹按shift+右键-打开命令窗口,启动程序
java -jar 项目.jar

打开浏览器输入网址,成功显示网页

  • 可能出现问题:gradle打包后找不到页面
    org.thymeleaf.exceptions.TemplateInputException: Error resolving template [/login.html], template might not exist or might not be accessible by any of the configured Template Resolvers
    找不到网页,打包后会把"/index.html"认为绝对路径,改用相对路径"index.html",以后编码要注意了
	//显示主页@RequestMapping("/index")public ModelAndView index(Model model) {...return new ModelAndView("index.html", "indexModel", model);}

5、把jar放到服务器上运行

  • Linux jar部署(使用nohup后台运行命令)
nohup java -jar 项目jar &

用nohup要等待启动,不会显示日志,它默认把日志输出到当前文件夹下nohup.out中
查看日志

cat nohup.out

如果只是测试,要实时显示信息,可以直接用java命令,服务会随对话结束退出

java -jar 项目jar

浏览器输入服务器网址,成功显示网页

  • 可能遇到问题:Unable to start embedded Tomcat server,一般是端口被占用,要彻底jar关闭进程
#查看有java字样的进程
ps aux | grep java
kill -9 pid号

在这里插入图片描述
再次启动进程即可

  • 可能遇到问题2:启动jar后,访问网址时在打转,CentOS防火墙端口还要开放(springboot默认是8080,也可以设置为http默认端口80)
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
firewall-cmd --reload

6、预告

下一章:eclipse远程调试springboot项目代码

附加

  • springboot服务组件:

Web:web项目组件,包含spring mvc,tomcat,logback等jar
JPA:JDBC请求组件,包含hibernate,jboss等ORM jar
Devtools:热部署组件,可以不重启服务的情况下刷新服务

  • 实际购买服务器后也会有自己的ip,还可以购买域名映射ip,域名还需要域名备案(阿里云、腾讯云提供一条龙服务,网站内搜索相关即可)。
  • 后期方向可能学习CDN加速,Docker镜像部署。

http://www.ppmy.cn/news/1144825.html

相关文章

vscode 调试使用 make 编译的项目

1、首先点击运行 --> 启动调试: 2、选择g或gcc生成和调试活动文件: 3、出现下面提示是正常的,点击仍要调试: 点击打开“launch.json”: 4、此时会在项目工作目录下生成tsak.josn和launch.json文件: 如…

4.Docker 搭建 redis6

1.下载redis docker pull redis:6.2.62.创建需要挂载的宿主机文件夹 mkdir -p /data/redis/conf mkdir -p /data/redis/data3.配置redis 切换到/data/redis/conf文件夹下,创建redis.conf,复制redis.conf配置文件内容到redis.conf文件中,然后按下键盘 …

[yolo系列:yolov7添加可变形卷积Deformable Conv V2]

yolo系列文章目录 文章目录 yolo系列文章目录一、可变形卷积是什么?二、使用步骤1.在models/common.py文件添加2.然后再yolo.py里面添加DCNv23.修改yolov7的yaml 总结参考文章 一、可变形卷积是什么? 可变形卷积即DCN(缩写取自Deformable Con…

四川众佰诚:抖音开店后怎么运营的

抖音作为中国最大的短视频平台,其商业价值已经被众多商家所认可。开通抖音小店,可以帮助商家更好地在短视频场景中展示商品,提升销售效果。然而,成功的运营不仅需要有吸引人的商品,还需要精细的运营策略。以下是一些关…

找出多组分辨率中最接近目标值的一组

package com.test;import java.util.ArrayList; import java.util.List;public class Test {public static void main(String[] args) {// 目标分辨率int targetWidth 640;int targetHeight 480;//String str "3264x2448,3264x1836,2560x1920,3264x1472,3200x1440,2304…

leetCode 167.两数之和 || - 输入有序数组 双指针解法

167. 两数之和 II - 输入有序数组 - 力扣(LeetCode) 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] …

10.selenium进阶

上述我们学习了selenium入门的一些操作, 本节知识点学习一些selenium的高级用法 1、嵌套网页 ​ 在前端开发中如果有这么一个需求。一个页面上的内容要被其它页面所共用。也就是说两个或者两个以上的页面需要共同存在与同一个页面。在前端页面开发中可以把写好的代码在每个页面…

CDGA数据治理工程师考试心得

2023年8月初,准备备考CDGA。当时也是很迷茫,啥时候考试都不知道,也不知道该怎么做。写这篇文章的目的也只是记录一下。 1.什么是CDGA? CDGA就是数据治理工程师(Certified Data Governance Associate),“D…

SpringBoot 如何配置 OAuth2 认证

在Spring Boot中配置OAuth2认证 OAuth2是一种用于授权的开放标准,允许应用程序安全地访问用户的资源。Spring Boot提供了强大的支持,使得在应用程序中配置OAuth2认证变得非常容易。本文将介绍如何在Spring Boot中配置OAuth2认证,以便您可以在…

tortoise创建本地仓库

1.安装git和tortoise 推荐 TortoiseGit的安装与配置方法 以及 Git TortoiseGit 配置步骤以及本地版本管理 这里记录一下我遇到的问题 1.右键没有创建本地版本库 2 .创建了但是克隆不了 后续专有 一般选专有网络 注意自行谨慎选择 自行负责

Go 通道机制与应用详解

一、概述 Go语言(也称为Golang)是一个开源的编程语言,旨在构建简洁、高效和可靠的软件。其中,通道(Channel)是Go并发模型的核心概念之一,设计目的是为了解决不同协程(Goroutine&…

pillow篇---pillow连续打开同一张图片会导致打开失败问题

如果你需要在多次操作同一张图像时避免出现缓存问题,你可以使用 Image.open() 方法的 seek() 方法将文件指针移动到图像数据的开头,以便重新读取图像数据。示例如下: from PIL import Image# 打开图像文件 image Image.open(example.jpg)# …

Lumos-az/MiniSQL阅读笔记

文章目录 处理SQL创建创建表RecordManager部分CatalogManager部分 创建索引IndexManager::createIndex部分API::createNewIndex部分CatalogManager::createIndex部分 插入删除删除表删除记录? 查询B树gif演示B树增删:插入:删除: 项目源码&am…

手机SSL证书失效了怎么解决?

在使用手机浏览器访问网站时,有时可能会遇到SSL证书失效的问题。SSL证书失效会导致网页无法正常显示,同时也会给用户带来不安全的访问风险。本文将介绍手机SSL证书失效的原因以及解决方法,帮助用户继续安全地浏览网页。 1. 检查日期和时间设置…

16k面试中的10个问题

你好,我是田哥 节前,有位朋友跟我反馈面试中一些问题,这位朋友的基本情况: 坐标:上海,年限:3年不到,期望薪资;16k 下面我们来看看具体问题: 01:请…

【轻松玩转MacOS】网络连接篇

引言 本篇让我们来聊聊网络连接。不论你是在家、在办公室,还是咖啡厅、机场,几乎所有的MacOS用户都需要连接到互联网。在这个部分,我们将向你展示如何连接到互联网和局域网。让我们开始吧! 一、连接到互联网 首先,我…

Maven 引入外部依赖

如果我们需要引入第三方库文件到项目,该怎么操作呢? pom.xml 的 dependencies 列表列出了我们的项目需要构建的所有外部依赖项。 要添加依赖项,我们一般是先在 src 文件夹下添加 lib 文件夹,然后将你工程需要的 jar 文件复制到 …

如何正确方便的理解双指针?力扣102 (二叉树的层序遍历)

双指针,顾名思义就是指针的指针。 在此之前我们需要先理解单指针 (简称为指针)。指针很简单,直接上例子:例:现有两个变量,a10,b20. 要求:交换他们的值,输出的结果应为a20…

vue实现自定义滚动条

vue实现自定义滚动条 具体效果如下,这边我用的rem单位,比例是1:40, 先写下页面布局,把原生的滚动条给隐藏掉,给自定义的滑块增加transition: marginLeft 1s linear;可以使左边距过度的更顺滑 .top-box-2::-webkit-scr…

Matlab的基本小知识

1.Matla基本的小知识 1.1分号的作用 在每一行的语句后面加上分号(一定要是英文的哦;中文的长这个样子;)表示不显示运行结果 代码区 执行所选代码 命令行窗口 1.2注释的快捷键 多行注释:选中要注释的若干语句,快捷键CtrlR 取消注释 : 选中要取消注释…
最新文章