Centos环境部署SpringBoot项目
centos | JDK | Jenkins | maven | tomcat | git | myslq | nginx |
---|---|---|---|---|---|---|---|
7.9 | 11.0.19 | 2.418 | 3.8.1 | 9.0.78 | 2.34.4 | 5.7.26 | 1.24.0 |
域名申请完成 DNS域名解析绑定 对象存储minio(建议换成云存储OSS)
JDK压缩包安装
一.JDK-安装
- JDK11官网下载 建议安装11因为如果安装Jenkins最新版本只支持JDK11/17; 查询本机架构 hostnamectl 根据信息下载具体版本. JDK8百度网盘下载 mx1f
#查询架构信息
hostnamectl
#根据信息下载具体版本 例如Architecture: x86-64下载 x64的
- yum安装后面依赖缺少时还要重新配置环境变量(安装好可以忽略) 推荐压缩包下载安装.
二.JDK-环境配置
- JDK11环境配置
注意JDK11没有jre 目录解压后其实就是jre
#Java11 Environment
#解压目录
export JAVA_HOME=/usr/local/java/jdk11
#指向解压目录即可
export JRE_HOME=/usr/local/java/jdk11
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
~~JDK8环境配置 ~~/etc/profile
export JAVA_HOME=/usr/local/java/jdk8
export JRE_HOME=/usr/local/java/jdk8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
- 检验
#生效配置
source /etc/profile
#检查安装成功?
java -version
JDK卸载
- 压缩包方式卸载.
#压缩包方式卸载删除解压目录和环境配置即可
#(1)查看是否已安装jdk
rpm -qa | grep jdk
#删除查询到的文件
#(2)查看jdk版本
java -version
#(3删除jdk及其配置环境
- yum安装的java,采用yum卸载.
#java -version 查询版本
#卸载所有openjdk相关文件输入
yum -y remove 版本*
#卸载tzdata-java
yum -y remove tzdata-java.noarch
#删除关于java的配置
vi /etc/profile
#立刻生效
source /etc/profile
#此时查不到
java -version
常用命令
常用命令 | 命令 | 备注 |
---|---|---|
解压 | tar -vxzf xxx |
- tar –xvf file.tar 解压 tar包
- tar -xzvf file.tar.gz 解压tar.gz
-v:显示所有过程
-x:解压
-z:有gzip属性的
-f: 使用档案名字,参数是最后一个参数后面只能接档案名 |
| 查询 | rpm -qa | grep xxx | -qa代表query,a代表all |
| 查询环境变量 | echo $JRE_HOME | |
| 环境立刻生效 | source /etc/profile | |
| 查询java版本 | java -version | |
遇到Tomcat启动失败问题 The JRE_HOME environment variable is not defined correctly
原因: 没有配置JRE_HOME
查看 JRE_HOME echo $JRE_HOME
解决: profile文件配置 export JRE_HOME=/usr/local/java/jdk11
sudo find / -name .bashrc
TomCat安装
- 安装: 下载**tomcat9 **(10版本会报错不知道为啥)-core 解压 查看状态 ps -ef |grep tomcat
- 部署项目时配置server.xml 添加到里面 docBase指定项目路径*
<Context path="" docBase="/usr/local/tomcat/apache-tomcat-10.1.11/webapps/blog"/>
如果环境变量没生效再配置/usr/local/tomcat/apache-tomcat-10.1.11/bin/setclasspath.sh
export JAVA_HOME=/usr/local/java/jdk11
export JRE_HOME=/usr/local/java/jdk11
MySQL安装
云安装5.7版本参考, 压缩下载~~ 选择 Compressed TAR Archive 选择Linux -通用 ; x86 64~~
- 卸载旧版本mariadb
如下命令以此执行 卸载旧版本mysql mariadb
rpm -qa|grep mari
rpm -e --nodeps mariadb-libs
rpm -qa|grep mari
- Wget安装mysql5.7.26 , 确定好安装目录后
#下载
wget -c http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
#解压
tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
#顺序安装依赖
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
- 启动/状态
#启动
mysql systemctl start mysqld.service
#查看mysql状态
systemctl status mysqld.service
#关闭1 cd 到 bin
./mysqladmin -u root -p shutdown
#关闭2
service mysqld stop
- 初始化mysql
- 查看密码 grep "password" /var/log/mysqld.log
- mysql -uroot -p 修改密码: set password for 'root'@'localhost' = password('自定义密码');
- 方便远程连接 grant all privileges on . to 'root'@'%' identified by '自定义密码' with grant option;
MinIO的安装
安装MinIO操作文档 Binary下载 , 按照官网的路径配置比较快
下载minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio
修改minio的权限
chmod +x minio
移动下载的文件 到此文件夹下
sudo mv minio /usr/local/bin/
创建minio.service 放到/etc/systemd/system/ 目录下 推荐使用MobaXterm操作方便,可视化操作
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
# 指的是下载的压缩 minio 文件路径 最后一个指的是文件
AssertFileIsExecutable=/usr/local/bin/minio
# 添加用户和分组后面会操作无需改动
[Service]
WorkingDirectory=/usr/local
User=minio-user
Group=minio-user
# 此文件需要注释掉 不识别此标识
# ProtectProc=invisible
#环境配置 需要创建一个minio文件 位置在 /etc/default/ 下
EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
# 启动命令
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=)
# This may improve systemctl setups where other services use `After=minio.server`
# Uncomment the line to enable the functionality
# Type=notify
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
创建环境变量 minio 文件无后缀只是个文件类型, 位置在/etc/default/ 下
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environment
# 配置登录账号和密码
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.
# 注意自己创建的文件,权限设置为777要不然报 file access denied ; 用来存放minio上传的文件,也可自行设置路径
MINIO_VOLUMES="/mnt/data"
# MINIO_SERVER_URL sets the hostname of the local machine for use with the MinIO Server
# MinIO assumes your network control plane can correctly resolve this hostname to the local machine
# 该值替换为本地计算机的正确主机名和 MinIO 服务器的端口(默认为 9000)查看端口 ip addr list xxx/20的就是
MINIO_SERVER_URL="http://本地服务器ip:9000"
启动程序, 通过 journalctl -f -u minio.service 命令实时查看输出日志情况.
# 配置完后重新加载
systemctl daemon-reload
#启动minio
systemctl start minio.service
# 查看运行状态
sudo systemctl status minio.service
# 开启日志查看
journalctl -f -u minio.service
关闭minio
# systemctl stop minio.service
#开启开机自启
systemctl enable minio.service
连接minio ,运行成功后Console如下图 后面的ip地址后的端口添加到,安全组, 然后用公网ip+此端口访问minio的管理平台页面
下面的错误是 自己创建的data没有设置777权限,所以运行失败 ,一直调试好久,看着日志才能更好的定位问题;
Error: unable to rename (/mnt/data/.minio.sys/tmp -> /mnt/data/.minio.sys/tmp-old/47f17c32-df74-49d3-8151-a079655e2557) file access denied, drive may be faulty please investigate (*fmt.wrapError)
部署项目注意事项
- tomcat 服务器 添加 docBase指定项目的路径, <Connector port="80" ..../> 端口修改为80 以便访问时不需要带上端口号,前端请求ip也要设置为80端口
- 前端请求后端ip地址 VITE_APP_API_BASEURL = http://ip(本地ip或者公网ip或者域名)/blog **/blog **指的是tomcat的war包名称 因为tomcat访问时 需要加上项目名称.
- 部署时先停掉服务在部署.
- 访问前端index.html页面, 配置后端, 编写一个@Controller 方法上@GetMapping("/") 表示访问ip地址 , 通过重定向 , 访问服务器下的前端dist包下index.html; return"/dist/index.html".
项目部署时注意问
- minio访问出错问题
浏览器访问图片提示Net::ERR_CONNECTION_RESET,查看地址是127.0.0.1, 部署云以后 只能通过公网ip才可以访问到minio的资源,所以修改minio配置文件, 修改,minio的ip地址 endpoint: http://公网ip : 端口(默认9000), 这样上传文件时前缀名字存储时就是公网ip了,访问时通过公网访问minio资源.
- 前端请求后端ip出错
前端封装的axios.js 的ip修改为 [ 公网ip:80/项目名称 **] **端口就可以访问后端了.
- 阿里云 安全组 需要注意一些外部访问的权限,比如minio平台管理页面端口
minio和tomcat 提取码:6ms8
Centos环境部署SpringBoot项目的更多相关文章
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- Docker快速上手之部署SpringBoot项目
Docker是基于Go语言实现的云开源项目. Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装.分发.部署.运行等生命周期 ...
- docker部署springboot项目
本文介绍一下docker如何部署springboot项目. 前提条件: 1.可以运行jar包的环境 2.机器上已经安装了docker 3.准备部署的springboot的jar包 4.Dockerfi ...
- mac和linux下使用Docker,部署SpringBoot项目到docker
主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...
- Docker下部署springboot项目
1.背景 如何在docker容器环境下部署一个springboot项目? 2.具体步骤 第一步:准备一个springboot项目的xxxx.jar包 jar包中用于测试的一个接口如下 第二步:编写Do ...
- 部署SpringBoot项目jar包到云服务器
前言 做安卓开发也有三四年了,但是对网络这块什么http.tcp/ip之类的一直不理解.并且想自己做一些小项目练练手的时候,数据库直接存在apk里总不是滋味,所以这次站在安卓开发的角度尝试着做一做简单 ...
- Jenkins部署springboot项目
记录jenkins如何部署springboot项目(jar类型的) 一.首先需要先配置好jenkins的基本配置(jdk.maven--),可在系统管理-->>全局工具配置中进行配置. 配 ...
- CentOS 7 部署 node 项目
CentOS 7 部署 node 项目 安装 node 环境 方法一:使用 wget 的方式下载压缩包进行解压 淘宝node镜像地址,进入地址选择自己想要安装的版本 wget https://npm. ...
- k8s-生产环境部署django项目k8s-dashboard管理系统
1. k8s-生产环境部署django项目k8s-dashboard管理系统 gitee地址: https://gitee.com/scajy/django-k8s-dashboard.git 部署架 ...
- 利用Dockerfile部署SpringBoot项目
利用Dockerfile部署SpringBoot项目 1.创建一个SpringBooot项目并且打成jar包 2.在Linux中创建一个文件夹,来做docker测试 [root@izwz90lvzs7 ...
随机推荐
- 我的第一个项目(十三) :组件间传值的一些方案(vuex,eventbus,localStorage)
好家伙, 先说一下我的需求,我要组件间传值 1.eventBus 前端兄弟组件传值eventbus无法使用 不报错也不触发,就很奇怪 //eventBus.js import Vue from & ...
- 用 NetworkX + Gephi + Nebula Graph 分析<权力的游戏>人物关系(下篇)
在上一篇[1]中,我们通过 NetworkX 和 Gephi 展示了<权力的游戏>中的人物关系.在本篇中,我们将展示如何通过 NetworkX 访问图数据库 Nebula Graph. N ...
- C++ STL 容器-Deque
C++ STL 容器-Deque std::deque(双端队列)是C++标准模板库(STL)中的一个容器,它支持在序列的两端快速插入和删除元素.与std::vector和std::list等其他序列 ...
- Docker下搭建Redis集群并实现动态扩/缩容
一.Redis集群方案的简单介绍 Redis集群的方案一般分为三种: 哈希取余分区 一致性哈希算法分区 哈希槽分区(本文介绍的就是这种) 1.哈希取余分区: 优点: 简单粗暴,只要提前预估好数据量,然 ...
- trans.bat 将.m4a 文件拖拽到这个上面 自动转换成.mp3 老歌精选-歌曲z
@chcp 65001 >nul echo off :: 获取文件名 SET filePath=%1 :: 因为这里目录的路径是 E:\老歌精选-歌曲z 是11个字符,所以是从第12个字符到最后 ...
- 摆脱鼠标系列 - vscode 左右切换文档 快捷键换成 Ctrl + Alt + 左右箭头
为什么 默认快捷键是 Ctrl + PageUp PageDown 用的不太习惯 Ctrl + Alt + 左右箭头 和 双列的快捷键冲突了,那个就不用了,基本没用过 备份图
- python 读取txt并绘制波形图实例解析
一 用python绘图有很多方法,笔者找到了一种最简单的方法,使用非常便利,这里分享一下: import numpy as np import matplotlib.pyplot as plt a = ...
- Python Numpy 中的打印设置函数set_printoptions
一 概述 np.set_printoptions()用于控制Python中小数的显示精度. 二 解析 np.set_printoptions(precision=None, threshold=Non ...
- C语言中的强制转换
许久没有遇到的问题 C语言真是博大精深,越使用它,就越发感觉到它的威力和恐怖,最近在做算法的时候,遇到了一个强转的错误,把人折腾的够受,这次要好好梳理一下了,希望下次不能再犯此类的问题. 强制转换 ...
- 基于webpack与TypeScript的SolidJS项目搭建
本文将讲述如何基于webpack与TypeScript搭建一个基础的支持less模块的solidjs项目.方便后续涉及到solidjs相关分析与讨论都可以基于本文的成果之上进行. 前置 nodejs ...