Linux-部署Spring项目与安装配置环境

news/2024/4/24 17:25:49/文章来源:https://blog.csdn.net/weixin_46926189/article/details/131997233

部署与配置

  • 1. 安装jdk
  • 2. 安装Tomcat
  • 3. 安装MySQL
    • 安装
    • 启动
    • 登录
  • 4. 安装lrzsz
  • 5. 安装Git
  • 6. 安装Maven
  • 7. 安装Redis
  • 8. 安装Nginx
  • 9. 执行Shell脚本

1. 安装jdk

  • 上传jdk到Linux上
  • 解压到tar -zxvf …jdk文件名 -C /usr/local
  • 修改配置文件 vim /etc/profile
  • 在配置文件末尾添加:大写G + i
    • JAVA_HOME=/usr/local/jdk1.8.0_171
    • PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
    • ESC + :wq
  • 重新加载配置文件 source /etc/profile
  • 检测是否安装成功 java -version

2. 安装Tomcat

  • 上传Tomcat的二进制包到Linux上
  • 解压到tar -zxvf …tomcat文件名 -C /usr/local
  • 进入Tomcat的bin目录启动服务,命令为sh startup.sh 或者**./startup.sh**

验证Tomcat是否启动成功,有多种方式

  • 查看启动日志

    • more /usr/local/apache-tomcat-7.0.57/logs/catalina.out
    • tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out
  • 查看进程 ps -ef | grep tomcat

  • 开放8080端口

3. 安装MySQL

安装

  • 查看当前系统是否安装该软件 rpm -qa | grep mariadb

mariadb和MySQL冲突,需卸载

  • rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

  • mkdir /usr/local/mysql

  • 将压缩包移动到mysql文件夹

    • mv mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz /usr/local/mysql/
  • 按照顺序按照rpm软件包

    • rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
    • rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
    • rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
    • rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
    • rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
    • yum install net-tools
    • 如果安装yum有问题,执行以下带后缀的
      • rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm --force --nodeps
    • yum安装没问题:rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
    • yum update

启动

  • systemctl status mysqld 查看mysql服务状态

  • systemctl start mysqld 启动mysql服务

  • systemctl enable mysqld 开机自动启动mysql服务

  • ps -ef|grep mysql 查看mysql进程

  • cat /var/log/mysqld.log|grep password 查看password的临时密码

登录

  • mysql -u root -p 登录mysql
  • set global validate_password_length=4; 设置密码长度最低位数
  • set global validate_password_policy=LOW; 设置密码安全等级低
  • set password = password(‘root’); 设置密码为root
  • grant all on . to ‘root’@‘%’ identified by ‘root’; 开启远程访问权限
  • flush privileges; 刷新权限

4. 安装lrzsz

  • yum list lrzsz 搜索lrzsz安装包
  • yum install lrzsz.x86_64 使用yum命令在线安装

5. 安装Git

  • yum list git 列出git安装包
  • yum install git.x86_64 在线安装git
  • 在/usr/local/javaapp下
    • git clone 仓库地址 使用Git克隆代码

6. 安装Maven

  • 上传maven的二进制包到Linux上

  • 解压到tar -zxvf …maven文件名 -C /usr/local

  • 修改配置文件 vim /etc/profile

    • export MAVEN_HOME=/usr/local/apache-maven-3.5.4
    • export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:MAVEN_HOME/bin:$PATH
  • 重新加载配置文件 source /etc/profile

  • 验证是否配置成功 mvn -version

  • 修改配置文件内容 vim /usr/local/apache-maven-3.5.4/conf/settings.xml

    • /usr/local/repo

7. 安装Redis

  • 上传redis的二进制包到Linux上

  • 解压到tar -zxvf …redis文件名 -C /usr/local

  • 安装Redis的依赖环境gcc,命令:yum install gcc-c++

  • 进入/usr/local/redis-4.0.0,进行编译,命令:make

  • 进入redis的src目录,进行安装,命令:make install

  • 在/redis-4.0.0下的redis.conf

    • 查找daemonize,设置为yes,可以在后台运行
    • 查找requirepass,可以设置密码
      • 把注释打开,把foobared更改为自己的密码
  • 在src目录下,执行redis-server 启动redis

  • 在src目录下,执行redis-cli 可以查看redis的数据

  • 每次修改完redis.conf后,当启动时 src/redis-server ./redis.conf

  • src/redis-cli -h localhost -p 6379 -a 密码

  • 为了可以远程连接

    • 在redis.conf上搜索bind 127.0.0.1,把bind 127.0.0.1注释掉
    • 在Window上 redis文件夹右键命令行 .\redis-cli.exe -h ip地址 -p 6379 -a 密码

8. 安装Nginx

  • 安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

  • 上传Nginx的二进制包到Linux上

  • 解压到tar -zxvf …Nginx文件名 -C /usr/local

  • cd nginx-1.16.1

  • mkdir -p /usr/local/nginx

  • ./configure --prefix=/usr/local/nginx

  • make && make install

  • 查看版本 进入nginx的sbin目录下 ./nginx -v

  • 检查配置文件的正确性进入sbin目录下 ./nginx -t

  • sbin目录下启动和停止

    • 启动Nginx服务:./nginx
    • 停止Nginx服务:./nginx -s stop
    • 启动完成后可以查看Nginx进程:ps -ef | grep nginx
  • 重新加载配置文件 ./nginx -s reload

  • 在etc/profile,可以在任意位置启动nginx

    • 追加 PATH=/usr/local/nginx/sbin: J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH

9. 执行Shell脚本

为用户授权

  • chmod 777 脚本名字

以下执行脚本可根据实际情况修改

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================echo 停止原来运行中的工程
APP_NAME=xxxxxxtpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; thenecho 'Stop Process...'kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; thenecho 'Kill Process!'kill -9 $tpid
elseecho 'Stop Success!'
fiecho 准备从Git仓库拉取最新代码
cd /usr/local/javaapp/xxxxxxecho 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`cd targetecho 启动项目
nohup java -jar xxxxxx-1.0-SNAPSHOT.jar &> xxxxx.log &
echo 项目启动完成

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于扩展(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

C\C++内存管理

目录 1.C/C内存分布2.C语言中动态内存管理方式3.C中动态内存管理3.1new/delete内置类型3.2new和delete操作自定义类型 4.operator new与operator delete函数4.2重载operator new与operator delete(了解) 5.new和delete的实现原理5.1内置类型5.2 自定义类…

【动态规划part12】| 309.买卖股票的最佳时机含冷冻期、714.买卖股票的最佳时机含手续费

目录 🎈LeetCode309.最佳买卖股票时机含冷冻期 🎈LeetCode714.买卖股票的最佳时机含手续费 🎈LeetCode309.最佳买卖股票时机含冷冻期 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计…

【计算机视觉中的 GAN 】如何稳定GAN训练(3)

一、说明 在上一篇文章中,我们达到了理解未配对图像到图像翻译的地步。尽管如此,在实现自己的超酷深度GAN模型之前,您必须了解一些非常重要的概念。如本文所提的GAN模型新成员的引入:Wasserstein distance,boundary eq…

element时间选择器的默认值

概览:vue使用element组件,需要给时间选择器设置默认值,场景一:默认时间选择器,场景二:时间范围选择器,开始时间和结束时间。 一、默认时间选择器 实现思路: element组件的v-model绑…

DevOps-Jenkins

Jenkins Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 官网 应用场景 场景一 研发人员上传开发好的代码到github代码仓库需要将代码下载nginx服务器部署手动下载再…

数值线性代数:奇异值分解SVD

本文记录计算矩阵奇异值分解SVD的原理与流程。 注1:限于研究水平,分析难免不当,欢迎批评指正。 零、预修 0.1 矩阵的奇异值 设列满秩矩阵,若的特征值为,则称为矩阵的奇异值。 0.2 SVD(分解)定理 设,则…

Open3D-ML自动驾驶点云目标检测与分割入门

当开始新的研究时,我的方法通常是测试不同的相关事物,直到有足够的经验让我开始将这些点联系起来。 在开始构建用于 3D 对象检测的自定义模型之前,我购买了一台 LiDAR 并处理了一些数据。 下一个明显的步骤是在我为自己的数据贴标签之前找出研…

SpringCloudAlibaba之Ribbon

Ribbon是nacos自带的负载均衡器,属于客户端的负载均衡 但是在Spring高级版本中让LoadBalancer替代了 本人用的是2.1.0的nacos,ribbon还没有被替换。 使用: 在配置类中:LoadBalanced BeanLoadBalancedpublic RestTemplate restT…

ChatGPT长文本对话输入方法

ChatGPT PROMPTs Splitter 是一个开源工具,旨在帮助你将大量上下文数据分成更小的块发送到 ChatGPT 的提示,并根据如何处理所有块接收到 ChatGPT(或其他具有字符限制的语言模型)的方法。 推荐:用 NSDT设计器 快速搭建可…

【FPGA IP系列】FIFO的通俗理解

FPGA厂商提供了丰富的IP核,基础性IP核都是可以直接免费调用的,比如FIFO、RAM等等。 本文主要介绍FIFO的一些基础知识,帮助大家能够理解FIFO的基础概念。 一、FIFO介绍 FIFO全称是First In First Out,即先进先出。 FIFO是一个数…

怎么选择合适的微信管理系统?

稳定好用的网页版微信CRM系统,随时随地可以登录,不用安排插件软件,不限制手机和电脑使用,电脑手机关机消息都是实时同步的 还有很多功能: 1、聚合聊天:支持多个微信号登录到系统上,一个页面就可…

WIZnet W51000S-EVB-PICO 入门教程(一)

概述 W5100S-EVB-Pico是基于树莓派RP2040和全硬件TCP/IP协议栈控制器W5100S的微控制器开发板-基本上与树莓派Pico板相同,但通过W5100S芯片增加了以太网功能。 W5100S-EVB-Pico特点 RP2040规格参数 双核Arm Cortex-M0 133MHz264KB 高速SRAM和2MB板载内存通过…

【计算机视觉中的 GAN 】 - 生成学习简介(1)

一、说明 在阅读本文之前,强烈建议先阅读预备知识,否则缺乏必要的推理基础。本文是相同理论GAN原理的具体化范例,阅读后有两个好处:1 巩固了已经建立的GAN基本概念 2 对具体应用的过程和套路进行常识学习,这种练习题一…

RocketMQ概论

目录 前言: 1.概述 2.下载安装、集群搭建 3.消息模型 4.如何保证吞吐量 4.1.消息存储 4.1.1顺序读写 4.1.2.异步刷盘 4.1.3.零拷贝 4.2.网络传输 前言: RocketMQ的代码示例在安装目录下有全套详细demo,所以本文不侧重于讲API这种死…

四种刷题模式的爱刷题无后端无数据库刷题应用网站H5源码

四种刷题模式的爱刷题无后端无数据库刷题应用网站H5源码。提供了简单轻量化的部署方式和详细的四种刷题模式教程。该应用使用JSON作为题库的存储方式,层次清晰、结构简单易懂。 配套的word模板和模板到JSON转换工具可供使用,方便将题库从word格式转换为…

抖音seo短视频账号矩阵系统技术开发简述

说明:本开发文档适用于抖音seo源码开发,抖音矩阵系统开发,短视频seo源码开发,短视频矩阵系统源码开发 一、 抖音seo短视频矩阵系统开发包括 抖音seo短视频账号矩阵系统的技术开发主要包括以下几个方面: 1.前端界面设…

SpringBoot的三层架构以及IOCDI

目录 一、IOC&DI入门 二、三层架构 数据库访问层 业务逻辑层 控制层 一、IOC&DI入门 在软件开发中,IOC(Inversion of Control)和DI(Dependency Injection)是密切相关的概念。 IOC(控制反转&a…

【每日一题】141. 环形链表

【每日一题】141. 环形链表 【每日一题】141. 环形链表题目描述解题思路 【每日一题】141. 环形链表 题目描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环…

37 coredump 的生成和使用

前言 呵呵 coredump 之前对于我而言也是一个挺陌生的概念 但是 只从开始了 linux 的相关学习之后, 对于这个 概念也有了一些 理解 呵呵 这里 以一些 简单的例子 来看一下 coredump 的生成和使用 首先执行 "ulimit -c unlimited" 测试用例1 - 除数为 0 root…