如何在Linux虚拟机或服务器上发布或部署一个Spring项目

Posted 一只猪的思考

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Linux虚拟机或服务器上发布或部署一个Spring项目相关的知识,希望对你有一定的参考价值。

1.开放端口

项目需要使用哪些端口就开放哪些端口
开放方法如下:

  • 1.进入控制台,选择安全组在这里插入图片描述
  • 2.点击蓝色连接,点击手动添加
    在这里插入图片描述
  • 3.添加需要开放的端口
    在这里插入图片描述

2.安装服务器远程连接工具

  • Xshell 的安装使用

  • Xshell是一个终端模拟软件,换言之,我们只要在本地Windows系统下安装这个软件,打开输入账号密码,就能登录远程的云服务器

  • Xshell下载官网(如果官网下载太慢,可以百度一下Xshell,很多资源,下载最新版的就行,我用的是Xshell 6,当然也可以直接用360软件管家无脑安装)

  • 下载完了选择安装路径开始安装,这个软件很小,安装也简单,安装过程中不会出现问题(新手的我也一路畅通)

  • 打开Xshell们可以看到如下界面
    在这里插入图片描述

  • 新建一个会话,拿出之前的笔记,将公网IP输入到主机栏,端口号设置为22(服务器的监听端口,ftp默认为21,sftp为22,如果你设置22连不进去,那就换21试一下)
    在这里插入图片描述
  • 点击 ”确定”>>“连接”,继续拿出笔记,把服务器账号填进“登录的用户名”,把服务器密码填进“密码”,如下图。
    在这里插入图片描述
    在这里插入图片描述
  • 登录成功,进入服务器。以后我们就可以通过这个界面对云服务器进行远程操控,在上面进行jdk,mysql安装,springboot部署等操作了。
    在这里插入图片描述

3.安装环境

这里选择的是yum一键安装

首先看看有没有旧的jdk环境

有则卸载

rpm -qa | grep java | xargs rpm -e --nodeps

无则跳过以上步骤

查询你自己需要安装的版本,这里会出现一个列表

yum -y list java*

在这里插入图片描述
安装jdk

 yum install java-1.8.0-openjdk* -y

我是把这些全匹配上,安装它们
在这里插入图片描述
在这里插入图片描述
配置一个环境变量

ll /usr/lib/jvm

查看自己jdk的一些属性在这里插入图片描述
可以看到我们这个 jre-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64 -> java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64/jre,直接指向过去了,所以我们环境变量配置在它身上就好了

vim /etc/profile
export JAVA_HOME=/user/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

export PATH=$PATH:$JAVA_HOME/bin

在这里插入图片描述
加在配置文件最后面就可以了

. /etc/profile

输入如下命令,

java -version

如果出现在这里插入图片描述
则说明安装成功

至于mysql及其他软件均可选择在宝塔安装
访问地址
在这里插入图片描述
选择linux版
点击立即安装
在这里插入图片描述
按步骤安装即可
安装完成后会给你如下访问地址
在这里插入图片描述
根据外网地址访问,输入账号密码后即可进入控制面板
在这里插入图片描述
点击软件商店,选择需要下载的软件即可
当然需要部署项目的话安装mysql是必不可少的
在这里插入图片描述
安装完mysql后
更改密码的地方在数哪里
在这里插入图片描述
点击root密码即可修改mysql密码
部署SpringBoot项目

4.部署SpringBoot项目

linux云服务器上的环境我们都已经配置好了,但好像差了一个tomcat?因为springboot内置了tomcat,所以后面我们把它打包成jar包就可以免去tomcat的配置了(如果是打包成war包,那还是要配置tomcat的)。
回到我们本地windows Springboot项目,下面我们对我们的项目做一些设置
打开pom.xml,添加如下语句,将项目的打包形式设置好

<!-- 打包成jar包 -->
	<packaging>jar</packaging>

在这里插入图片描述
打开application.properties,设置项目运行端口(我用的是8080,默认是8080,如果你用的是别的端口,要把你的端口加入到安全组中去)
当然你也可以用server.port设置端口号:
在这里插入图片描述

数据库连接也不要忘记配了在这里插入图片描述
项目打包成jar包,点击maven >> clean >> package在这里插入图片描述
项目打包成功,可以在左边target文件夹中看到项目的jar包
在这里插入图片描述
把这个jar复制到桌面,打开Xshell,点机xftp传输文件
在这里插入图片描述
如果xftp还未下载,点击此处下载当然也可以选择用360软件助手无脑下载
选定刚才打包的项目传输到linux上即可
在这里插入图片描述
耐心等待上传成功,使用ls指令可以看到我们上传成功的jar包
在这里插入图片描述
我们要想在linux系统上运行这个项目,就要保证他运行所用的端口没有被占用,不然运行就会报错

查看端口使用情况

netstat -anp | grep 8080   //netstat -anp | grep <端口号>

如果这个端口被占用了(没被占用的时候不显示任何东西),查看占用端口的PID

sudo lsof -i:8080  //sudo lsof -i:<端口号>

在这里插入图片描述

我们要把它kill掉,留出空位来运行我们的项目。kill后再次查看端口,可以看到这个端口已经腾出来了(查询为空)

sudo kill -9 26191  //sudo kill -9 <PID>

端口放出来后,只需要运行项目就大功告成了

nohup java -jar XXX.jar >temp.txt &

temp.txt &的意思将nohup java -jar XXX.jar 命令的的输出、重定向到temp.txt文件中,而不是把输出内容打印到xshell命令页上.

如果项目发布后网页无法访问,有以下几种处理方法

  1. 检查服务器安全组是否打开
  2. 查看项目是否有bug,项目日志都储存在上文中所说的temp.txt文本中
  3. 开放8080防火墙
 firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --zone=public --query-port=8080/tcp

以上是关于如何在Linux虚拟机或服务器上发布或部署一个Spring项目的主要内容,如果未能解决你的问题,请参考以下文章

跨平台web调试代理工具---whistle

虚拟机Linux上部署DB2pureScale过程

SUSE Linux Enterprise Desktop 15 SP1 安装部署事项

虚拟化部署之linux网卡的VLAN配置

centos8环境判断当前操作系统是否虚拟机或容器

制作P版openstack本地源