SpringBoot 项目部署到 Linux 系统中

Posted 张学徒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot 项目部署到 Linux 系统中相关的知识,希望对你有一定的参考价值。

CentOS 7
JDK 1.8

安装 CentOS7 虚拟机

这里我有一个多节点环境的基础配置的文章,可以用来模拟前后端分离项目的配置的环境:虚拟机配置Linux多节点的学习环境

安装好后强烈建议你使用外部的 ssh 软件连接到虚拟机中,比如 SecureCRT, XShell,这样使用界面以及操作起来都比较舒服。

安装 jdk1.8

yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

如果不能安装则下载安装

wget https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.rpm
rpm -ivh jdk-8u151-linux-x64.rpm

安装后,查看是否安装成功

java -version

进入 jvm 目录,查看安装的 jdk

cd /usr/lib/jvm
ls

安装 Tomcat

在这个网址 https://repo.huaweicloud.com/apache/tomcat/ 华为开源镜像站里的 tomcat 文件夹内,有几个不同版本的 Tomcat

在这里我使用 wget 直接下载了一个 7.0.109 的版本的

mkdir /usr/local/tomcat
cd /usr/local/tomcat
wget https://repo.huaweicloud.com/apache/tomcat/tomcat-7/v7.0.109/bin/apache-tomcat-7.0.109.tar.gz
tar -zxvf apache-tomcat-7.0.109.tar.gz

启动 tomcat

cd /usr/local/tomcat/apache-tomcat-7.0.109/bin
./startup.sh  # 启动tomcat

注: ./catalina.sh start 和 ./startup.sh 都能启动tomcat。使用 ./catalina.sh stop 或 ./shutdown.sh 停止tomcat。

如果无法访问,则有可能是服务器防火墙问题,8080端口被拦截了,需要开启

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

/etc/init.d/iptables save
/etc/init.d/iptables restart

如果以上方法报错, 可能是因为你的centos版本过低,请使用以下方法禁用防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

安装 mysql

# 下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
# 安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
# 检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"

出现以下内容表示添加成功

进行安装

yum install -y mysql-community-server

启动服务

systemctl start mysqld

安装查看是否有启动服务的端口号

yum -y install lsof
lsof -i :3306

查看MySQL的启动状态

systemctl status mysqld

开机启动

systemctl enable mysqld
systemctl daemon-reload

修改root本地登录密码,跳过mysql登陆密码

vi /etc/my.cnf

在文件内容 [mysqld] 那个的下面,添加一行 skip-grant-tables

重启 mysql 服务

systemctl restart mysqld

直接输入 mysql 即可进入,进入后修改密码:

flush privileges;
set password for 'root'@'localhost'=password('123456');
flush privileges;

退出 mysql,进入 vi /etc/my.cnf 将之前添加的 skip-grant-tables 删掉,然后重启 mysql 服务

即可通过 mysql -uroot -p123456 登陆进入 mysql

打包 Maven 项目

我这里有个写好的测试项目,已打包好,里面包含 sql 文件和 jar 包

用maven打包

打包后 jar 文件在项目中的 target 文件夹中

然后上传到 tomcat 中的 webapps 文件夹中,我使用 xftp 工具进行连接

进入到 /usr/local/tomcat/apache-tomcat-7.0.109/webapps 文件夹中,然后将打包好的 jar 拖拽进去

使用 ifconfig 命令查看端口号,我的是 192.168.43.110

我这个项目的端口是 8090,所以还需要开启对应端口

iptables -I INPUT -p tcp --dport 8090 -j ACCEPT

终端中进入 /usr/local/tomcat/apache-tomcat-7.0.109/webapps 文件夹内,并运行 jar 包

java -jar demo3-0.0.1-SNAPSHOT.jar

我这里只写了一个端口 /api/UserInfo/id,我们使用浏览器进行访问,可以看到返回了数据,表示连接成功了

想后台执行 jar 包,执行命令,下面命令后台执行 jar 包,并将执行的日志出入到 temp.txt 文件中

nohup java -jar demo3-0.0.1-SNAPSHOT.jar >temp.txt &

](http://zhangxuetu.cn/wp-content/uploads/2022/04/wp_editor_md_52f9694e878d35a5b9ea80677a2a6192.jpg)

查看后台运行的 jar 线程

ps -ef | grep 'java -jar'

执行后输出一个 pid 线程ID,使用 kill -9 PID 命令进行杀死停止这个程序

参考

以上是关于SpringBoot 项目部署到 Linux 系统中的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot 项目部署到 Linux 系统中

SpringBoot 项目部署到 Linux 系统中

springboot+vue项目部署到linux_arm64系统

springboot+vue项目部署到linux_arm64系统

springboot+vue项目部署到linux_arm64系统

Linux——在Linux系统上打包和部署springboot+vue项目,nginx+mysql+redis+minio