Linux之 Ubuntu 安装常见服务 (二) Tomcat

安装TomCat 服务

1、安装JDK环境

在这里插入图片描述

https://www.oracle.com/java/technologies/downloads/ 下载的官网

wget https://download.oracle.com/java/20/latest/jdk-20_linux-x64_bin.deb (sha256)
在这里插入图片描述

在这里插入图片描述
使用dpkg进行软件安装时,提示:dpkg:处理软件包XXX时出错:依赖关系问题,仍未被配置

使用如下命令,sudo apt-get install -f 命令修复包依赖

等分析完之后,重新使用dpkg –i XXX.deb,就可以了。

在这里插入图片描述

jdk 安装的路径:

/usr/lib/jvm/jdk-20
在这里插入图片描述
sudo ln -s /usr/lib/jvm/jdk-20 /exprot/server/jdk
在这里插入图片描述
创建环境变量
sudo vim /etc/profile # 系统级别
在这里插入图片描述

在这里插入图片描述

soruce /etc/profile # 立马生效

在这里插入图片描述

检测jdk是否安装成功
在这里插入图片描述

2、解压并安装tomcat

因为tomcat是提供web服务的, 容易受到黑客攻击,为了服务器安全,建议 非root用户部署
(1)、关闭防火墙
(2)、创建用户

sudo useradd tomcat -m # -m 自带创建 tomcat 加目录
cat /etc/passwd # 查看用户信息
sudo passwd tomcat # 创建用户的密码
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(3)、下载tomcat

下载 地址 https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.11/bin/apache-tomcat-10.1.11.tar.gz

sudo wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.11/bin/apache-tomcat-10.1.11.tar.gz

如果提示证书问题 加 --no-check-certificate 不校验证书

sudo wget --no-check-certificate https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.11/bin/apache-tomcat-10.1.11.tar.gz
在这里插入图片描述
(4)解压、软链接

sudo tar -zxvf apache-tomcat-10.1.11
在这里插入图片描述
在这里插入图片描述

(五)修改tomcat安装目录的权限

sudo chown -R tomcat:tomcat /export/server/tomcat # 同时对软链接和tomcat安装文件进行修改,使用*tomcat* 进行匹配
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

启动tomcat

./startup.sh
在这里插入图片描述

检测tomcat 服务是否正常

curl 127.0.0.1:8080 # 通过curl 请求 如果有范围html字符串,代表成功, 本机测试(mysql安装的本机)
在这里插入图片描述
如果上图不显示,就是非本机访问不成功,就是8080端口被限制拉 tomcat 默认端口是 8080

Ubuntu 默认是关闭防火墙
sudo ufw status # 查看防火墙状态 active 开启 inactive 关闭
sudo ufw enable # 开启防火墙
sduo ufw disable # 关闭防火墙

在这里插入图片描述

Centos 默认是开启防火墙
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 停止防火墙开机自启

#方法2 放行8080 端口的外部访问
firewall-cmd --add-port=8080/tcp --permanent # permanent 永久生效
firewall-cmd --reload # 重新载入防火墙规则使其生效

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

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

相关文章

Redis 总结【6.0版本的】

如果源码不编译,是无法实现自动跳转的, Redis在win上编译有点麻烦,我是使用的CentOS环境,Clion编译 编译完就可以直接通过shell连接Redis server了 server.c 中放的是就是主类 :6000多行左右是入口main()函数位置 Red…

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数

oracle 1.创建表 CREATE TABLE "YZH2_ORACLE" ("VARCHAR2_COLUMN" VARCHAR2(20) NOT NULL ENABLE,"NUMBER_COLUMN" NUMBER,"DATE_COLUMN" DATE,"CLOB_COLUMN" CLOB,"BLOB_COLUMN" BLOB,"BINARY_DOUBLE_COLU…

【Docker】Docker容器数据卷、容器卷之间的继承和DockerFIle的详细讲解

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL&…

SpringBoot+vue 大文件分片下载

学习链接 SpringBootvue文件上传&下载&预览&大文件分片上传&文件上传进度 VueSpringBoot实现文件的分片下载 video标签学习 & xgplayer视频播放器分段播放mp4(Range请求交互过程可以参考这个里面的截图) 代码 FileController …

Python爬虫——爬虫时如何知道是否代理ip伪装成功?

前言 在进行爬虫时,我们可能需要使用代理IP来伪装自己的身份,以避免被网站封禁。如何判断代理IP是否伪装成功呢?本篇文章将围绕这个问题展开讲解,同时提供Python代码示例。 1. 确认代理IP地址 首先,我们需要确认代理…

Leetcode-每日一题【剑指 Offer 04. 二维数组中的查找】

题目 在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matri…

JMeter(二十四)、使用吞吐量控制器实现不同的用户操纵不同的业务

一、需求 需求:博客系统,模拟用户真实行为,80%的用户阅读文章,20%的用户创建文章,创建文章的用户随机的删除或者修改文章。 二、脚本实现 80%的用户查看文章 20%用户创建文章 根据post_id是否能整除2,决…

【Java】如何判断线程池任务执行完?

文章目录 前言1.需求分析2.实现概述3.具体实现3.1 统计完成任务数3.2 FutureTask3.3 CountDownLatch和CyclicBarrier 小结 前言 论是在项目开发中,还是在面试中过程中,总会被问到或使用到并发编程来完成项目中的某个功能。 例如某个复杂的查询&#xf…

嵌入式开发学习(STC51-12-I2C/IIC)

内容 在数码管右3位显示数字,从0开始,按K1键将数据写入到EEPROM内保存,按K2键读取EEPROM内保存的数据,按K3键显示数据加1,按K4键显示数据清零,最大能写入的数据是255; I2C介绍 I2C简介 I2C&…

第一百二十二天学习记录:C++提高:STL-vector容器(上)(黑马教学视频)

vector基本概念 功能: vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别: 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: 并不是在原空间之后续接新的空间,而是找更大的内…

中国政府版 Windows 10 开发完成,即将大规模推广

早在今年 3 月 20 日,就有媒体曝光中国政府专用 Windows 10 已经完成第一版。而就在今天微软在上海举办的发布会中,微软再次透露了中国政府版 Windows 10 的最新情况——已经开始试点测试。这就意味着政府版 Windows 10 或很快大规模推广。 据了解&#…

基于Dockerfile构建镜像应用

目录 一、镜像概述 二、镜像构建方式 三、镜像构建案例 3.1、基于已有容器创建镜像 3.2、基于本地模板创建镜像 3.3、基于Dockerfile构建镜像 3.3.1、Docker 镜像结构 3.3.2、Dockerfile介绍 3.3.3、Dockerfile详解 3.3.4、Dockerfile构建SSHD镜像 3.3.5、Dockerfile…

clickhouse断电重启故障解决方案

业务场景 公司的一个日志系统用到了clickhouse。一线运维反映说有个生产环境因为异常断电造成服务器重启。在执行日志系统的启动脚本时,一直报clickhouse启动不起来,日志系统无法使用。 问题排查 通过阅读启动脚本代码,以及启动日志系统&a…

1.1k star,推荐一款程序员摸鱼神器

如果你在搬砖的过程中,想要看书、听歌、看图、看漫画等等,那么我建议你看下这个软件,之前也有推荐过,目前新的版本功能做了完善。 不过有个尴尬的点就是,作者增加了会员功能,但是对于基本使用还是没问题的…

react ant add/change created_at

1.引入ant的 Table import { Table, Space, Button, message } from antd; 2.获得接口的数据的时候增加上创建时间 const response await axios.get(${Config.BASE_URL}/api/v1/calculation_plans?token${getToken()});if (response.data.message ok) {const data respon…

Go学习第五天

Golang中面向对象类的表示与封装 package mainimport "fmt"// 如果类名首字母大写,表示其他包也能够访问 type Hero struct {// 如果类的属性首字母大写,表示该属性是对外能够访问的,否则的话只能够类的内部访问Name stringAd …

安全文件传输的重要性及其对企业的影响

在当今的信息时代,企业之间的文件传输已经成为日常工作的重要组成部分。无论是在商务合作、人力资源还是财务审计等方面,文件传输都发挥着关键的作用。然而,随着网络技术的发展,网络安全问题也日益突出,泄漏、篡改、丢…

SpringBoot之Actuator基本使用

SpringBoot之Actuator基本使用 引入分类常用接口含义healthbeansconditionsheapdumpmappingsthreaddumploggersmetrics 引入 <!-- actuator start--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…

webpack基础知识四:说说webpack中常见的Plugin?解决了什么问题?

一、是什么 Plugin&#xff08;Plug-in&#xff09;是一种计算机应用程序&#xff0c;它和主应用程序互相交互&#xff0c;以提供特定的功能 是一种遵循一定规范的应用程序接口编写出来的程序&#xff0c;只能运行在程序规定的系统下&#xff0c;因为其需要调用原纯净系统提供…

TCP的三次握手和四次挥手······详解

1、三次握手 三次握手是建立连接的过程 如图大致为三次握手的流程图&#xff1a; 当客户端对服务端发起连接时&#xff0c;会先发一个包连接请求数据&#xff0c;去询问能否建立连接&#xff0c;该数据包称为 “SYN”包 然后&#xff0c;如果对方同意连接&#xff0c;那么…