【Linux】部署单机项目(自动化启动)
目录
一.jdk安装
二.tomcat安装
三.MySQL安装
四.部署项目
一.jdk安装
1.上传jdk安装包 jdk-8u151-linux-x64.tar.gz
进入opt目录,将安装包拖进去

2.解压安装包
防止后面单个系列解压操作,我这边就直接将所有的要用的全部给解压,如下图
注:具体的tar -zxvf 后面解压包名根据自己的解压包名来。mysql解压包可以单独准备一个文件夹进行解压
tar -zxvf jdk-8u151-linux-x64.tar.gz //jdk解压命令
tar -zxvf apache-tomcat-8.5.20.tar.gz //tomcat解压命令
tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar //解压mysql命令

3.配置坏境变量
输入命令vi /etc/profile,添加jdk的坏境变量,添加如下的代码
#java environment
export JAVA_HOME=/javaxl/jdk1.8.0_151(jdk解压路径)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH注意:JAVA_HOME后的变量值是jdk安装目录,要根据自己jdk目录来,其它不变

查看
命令:java -version 可以看到以下:
[root@localhost java]# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
二.tomcat安装
1. 上传安装包 apache-tomcat-8.5.20.tar.gz
跟jdk一样,直接将安装包拖入到opt目录下即可
2. 解压安装包
在opt目录下进行解压,解压到usr/local/java目录下
[root@localhost java]# cd /opt/
[root@localhost opt]# tar -zxvf apache-tomcat-8.5.20.tar.gz -C /usr/local/java
3. 启动tomcat
[root@localhost java]# cd apache-tomcat-8.5.20/bin/
[root@localhost bin]# ./startup.sh
4. 防火墙设置
1、开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
2、刷新防火墙
firewall-cmd --reload
3、查看防火墙列表
firewall-cmd --zone=public --list-ports
5. 创建启动脚本(设置自启动,服务器开启即启动)
将tomcat目录下bin中的catalina.sh拷贝到/etc/init.d目录下
[root@localhost bin]# cp /usr/local/java/apache-tomcat-8.5.20/bin/catalina.sh /etc/init.d
重命名为tomcat
[root@localhost bin]# cd /etc/init.d/
[root@localhost init.d]# mv catalina.sh tomcat
编辑tomcat
进入编辑界面,加入以下内容,注意根据自己的环境配置
加入以下注释,:wq保存
执行以下命令添加服务
[root@localhost init.d]# chkconfig --add tomcat
三.MySQL安装
1. 卸载mariadb,否则安装MySQL会出现冲突(先查看后删除再查看)
[root@localhost ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
[root@localhost ~]# rpm -qa|grep mariadb
2. 上传MySQL安装包
跟jdk一样,将安装包拖入到opt目录下
3. 解压MySQL安装包 mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar
创建一个文件夹
[root@localhost ~]# cd /usr/local/java/
[root@localhost java]# mkdir mysql-5.7进入opt目录下进行解压
[root@localhost java]# cd /opt
[root@localhost opt]# tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar -C /usr/local/java/mysql-5.7/
4. 以下内容逐条进行安装,-ivh 其中i表示安装,v表示显示安装过程,h表示显示进度
rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.35-1.el7.x86_64.rpm
5. 启动MySQL服务及开机启动设置
[root@localhost mysql-5.7]# systemctl start mysqld
[root@localhost mysql-5.7]# systemctl enable mysqld.service
6. 登录MySQL修改密码
[root@localhost mysql-5.7]# grep "password" /var/log/mysqld.log
2024-02-24T09:47:07.400066Z 1 [Note] A temporary password is generated for root@localhost: ro.*hxccr9oL
[root@localhost mysql-5.7]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
#设置密码校验策略(0 or LOW),要不密码太LOW不让你过
set global validate_password_policy=0;
#设置密码校验长度,要不密码太短不让你过(多次测试发现密码最小长度为4位)
set global validate_password_length=4;
#更新密码
set password = password("123456");#数据库没有授权,允许以root身份远程登录mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
#输入后使修改生效还需要下面的语句
FLUSH PRIVILEGES;#可以退出,试试用新密码重新登录
exit
7. 防火墙设置
#开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#刷新防火墙规则
firewall-cmd --reload
#查看防火墙列表
firewall-cmd --zone=public --list-ports
四.部署项目
1. 先创建一个数据库,名称要与脚本一致
2. 先将tomcat服务停掉,将项目的war包放入到/usr/local/java/apache-tomcat-8.5.20/webapps目录下,再启动服务
3. 项目启动成功


好啦今天就到这里哦!!希望能帮到你哦!!!
相关文章:
【Linux】部署单机项目(自动化启动)
目录 一.jdk安装 二.tomcat安装 三.MySQL安装 四.部署项目 一.jdk安装 1.上传jdk安装包 jdk-8u151-linux-x64.tar.gz 进入opt目录,将安装包拖进去 2.解压安装包 防止后面单个系列解压操作,我这边就直接将所有的要用的全部给解压,如下图注…...
MySQL:使用聚合函数查询
提醒: 设定下面的语句是在数据库名为 db_book里执行的。 创建t_grade表 USE db_book; CREATE TABLE t_grade(id INT,stuName VARCHAR(20),course VARCHAR(40),score INT );为t_grade表里添加多条数据 INSERT INTO t_grade(id,stuName,course,score)VALUES(1,测试0…...
【Linux C | 网络编程】套接字选项、getsockopt、setsockopt详解及C语言例子
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...
Springboot解决模块化架构搭建打包错误找不到父工程
Springboot解决模块化架构搭建打包错误找不到父工程 一、情况一找不到父工程依赖1、解决办法 二、情况二子工程相互依赖提示"程序包xxx不存在" 一、情况一找不到父工程依赖 报错信息 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:…...
Android全屏黑边解决方案
在Android12以上的手机,设置全屏后屏幕底部有黑边或者白边,有的屏幕顶部有黑边。解决方案很简单,在使用的主题中添加对应的设置即可,如下: res/values/themes.xml <resources><style name"Base.Theme.La…...
【矩阵】【方向】【素数】3044 出现频率最高的素数
作者推荐 动态规划的时间复杂度优化 本文涉及知识点 素数 矩阵 方向 LeetCode 3044 出现频率最高的素数 给你一个大小为 m x n 、下标从 0 开始的二维矩阵 mat 。在每个单元格,你可以按以下方式生成数字: 最多有 8 条路径可以选择:东&am…...
什么是RPC?谈谈你对RPC的理解
RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议。它允许一台计算机(客户端)通过网络调用另一台计算机(服务器)上的程序,并等待该程序的结果返回。RPC抽象了网络通信的…...
C语言实现哈希查找之线性探测算法
C语言中实现一个简单的哈希表,并包括线性探测和二次探测再散列处理冲突的功能: 1. 定义哈希表结构 首先,定义一个哈希表的结构,包括存储空间、哈希表的大小等。 2. 实现哈希函数 选择一个合适的哈希函数来计算键值的哈希值。 …...
js:lodash template文件模板语法和应用
文档 https://www.lodashjs.com/docs/lodash.templatehttps://lodash.com/docs/4.17.15#template 语法 <% VALUE %> 用来做不转义插值;<%- VALUE %> 用来做 HTML 转义插值;<% expression %> 用来描述 JavaScript 流程控制。 示例 …...
在Windows系统上安装Docker和SteamCMD容器的详细指南有哪些?
在Windows系统上安装Docker和SteamCMD容器的详细指南有哪些? 安装Docker: 首先,需要在Windows操作系统上激活WSL2功能。这是因为Docker作为一个容器工具,依赖于已存在并运行的Linux内核环境。可以通过使用winget来安装Docker。具体…...
点击输入框,获取提示信息
HTML结构代码 <body><input><p>单击输入框获取焦点。</p><span>请输入你的电话号码?</span></body> Java script代码 <script type"text/JavaScript">let pdocument.getElementsByTagName(input)[0];console.lo…...
房贷计算器微信小程序原生语言
微信小程序: 房贷计算器 效果: 输入 300万 结果 还款明细 一共有3个页面 1、输入页面 2、结果页面 3、详情页面 1 index页面 index.wxml文件 <view class="text-black"><!--房屋总价--><view class="cu-bar bg-white solid-bottom"&…...
【C++从0到王者】第四十六站:图的深度优先与广度优先
文章目录 一、图的遍历二、广度优先遍历1.思想2.算法实现3.六度好友 三、深度优先遍历1.思想2.代码实现 四、其他问题 一、图的遍历 对于图而言,我们的遍历一般是遍历顶点,而不是边,因为边的遍历是比较简单的,就是邻接矩阵或者邻接…...
Docker技术概论(2):Docker环境的搭建
Docker技术概论(2) Docker环境的搭建 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blo…...
电脑休眠之后唤不醒
现象:午休时间电脑休眠了,醒来之后发现在密码输入界面,但鼠标键盘没反应。按重启键或电源机重新开机,结果开不了机。 原因:1、内存条脏了,导致内存条读取失败 2、休眠的时候硬盘休眠了,导致按…...
Python列表中添加删除元素不走弯路
1.append() 向列表中添加单个元素,一般用于尾部追加 list1 ["香妃", "乾隆", "贾南风", "赵飞燕", "汉武帝"]list1.append("周瑜") print(list1) # [香妃, 乾隆, 贾南风, 赵飞燕, 汉武帝, 周瑜]…...
MATLAB环境下脑电信号EEG的谱分析
脑电信号一直伴随着人类的生命,脑电波是脑神经细胞发生新陈代谢、离子交换时细胞群兴奋突触电位总和,脑电信号的节律性则和丘脑相关,含有丰富的大脑活动信息。通常我们所接触的脑电图都是头皮脑电图,在有些特殊场合还需要皮下部位…...
librtmp源码分析
阅读了librtmp的源码,简单记录下。 首先补充下AMF格式基本知识 1 AMF格式 AMF是Action Message Format(动作消息格式)的简写,它是一种二进制的数据格式。它的设计是为了把actionscript里面的数据(包括Object, Array, Boolean, Number等)序列化成二进制…...
CCDP.00.问老师问题前你首先需要做的事情
一、一定要按老师要求做好快照!!!!! 1、在关键节点处,比如做完Part1后,关机状态下做快照。 2、在做没把握的操作前先做快照(这个可以在开机状态下做快照,但推荐关机状态…...
「算法」常见位运算总结
位运算符 异或 按位异或可以实现无进位相加,所谓无进位相加,就是在不考虑进位的情况下将两个数相加(后面有道题需要用到这种操作) 异或的运算律 ①a ^ 0 a ②a ^ a 0 ③a ^ b ^ c a ^ ( b ^ c ) 有符号右移>> 将一个…...
DVWA1.9 High级文件上传漏洞实战:3种绕过技巧与详细复现步骤
DVWA1.9 High级文件上传漏洞实战:3种绕过技巧与详细复现步骤 在网络安全领域,文件上传漏洞一直是渗透测试中的重点研究对象。DVWA(Damn Vulnerable Web Application)作为一款专为安全测试设计的靶场环境,其High级别的文…...
从AP到STA:深入解析ESP8266热点连接失败的排查与修复
1. 为什么你的ESP8266连不上热点? 刚拿到ESP8266开发板的新手,十有八九会在连接WiFi热点时栽跟头。明明代码照着教程一字不差,串口监视器却始终显示"Connecting to...",最后要么超时失败,要么卡在无限循环。…...
2025最权威的六大AI学术神器实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当前,各种AI生成内容检测工具越发普遍,好多创作者面临内容被错误判定…...
OpenSpec实战:从规范到代码的AI驱动开发工作流
1. OpenSpec实战:为什么我们需要规范驱动的开发 在传统开发流程中,最让人头疼的问题莫过于"代码写完了,但和需求文档对不上"。我见过太多项目在交付时才发现,开发人员理解的"用户登录功能"和产品经理描述的完…...
如何快速构建私有化大语言模型:ggml与llama.cpp的终极集成指南
如何快速构建私有化大语言模型:ggml与llama.cpp的终极集成指南 【免费下载链接】ggml Tensor library for machine learning 项目地址: https://gitcode.com/GitHub_Trending/gg/ggml 在当今AI驱动的时代,构建私有化大语言模型已成为企业和开发者…...
利用Granite TimeSeries FlowState R1优化.NET企业应用中的资源调度
利用Granite TimeSeries FlowState R1优化.NET企业应用中的资源调度 想象一下,你负责维护一个大型电商的后台订单处理系统。在“双十一”这样的流量洪峰到来前,你只能凭经验预估服务器需要扩容多少。结果往往是,要么预估不足导致系统卡顿&am…...
手把手教你用LangChain4j打造一个“会追问”的AI客服:以航空货运下单为例
用LangChain4j构建会主动追问的航空货运AI客服:从交互设计到代码实现 想象一下,当你需要预订航空货运服务时,面对的是一个只会机械回答问题的客服机器人——你问一句,它答一句,信息不全时直接卡壳。这种体验有多糟糕&a…...
Qwen3-ForcedAligner-0.6B在会议记录中的应用:高精度转录+自动分段
Qwen3-ForcedAligner-0.6B在会议记录中的应用:高精度转录自动分段 1. 引言:会议记录的痛点与智能解决方案 想象一下这个场景:你刚开完一个两小时的跨部门会议,会议内容涉及产品规划、技术方案和市场策略。现在你需要整理会议纪要…...
AutoGLM-Phone-9B性能优化:让移动端推理速度提升30%的技巧
AutoGLM-Phone-9B性能优化:让移动端推理速度提升30%的技巧 1. AutoGLM-Phone-9B模型概述 AutoGLM-Phone-9B是一款专为移动设备优化的多模态大语言模型,在保持强大理解能力的同时,通过多项技术创新实现了高效的移动端推理。该模型基于GLM架构…...
C++并发学习
基础学习内存序默认的memory_order_seq_cst,多线程之间全局保持一致性。memory_order_acq_rel是仅次于默认的内存序,是acquire和release的结合,不保证所有线程看到的结果都是一致的acquire是读操作,release是写操作,这…...


