当前位置: 首页 > news >正文

【从0开始在CentOS 9中安装Tomcat】

从0开始在CentOS 9中安装Tomcat

      • 1. 安装 Java(Tomcat 需要 Java 环境)
      • 2. 下载并安装 Tomcat
      • 3. 配置 Tomcat
      • 4. 启动 Tomcat
      • 5. 配置 Tomcat 为开机自启动
      • 6. 验证 Tomcat 运行状态
      • 7. 允许防火墙开放 8080 端口(可选)


要在 Linux 上安装并配置 Tomcat,以下是详细步骤:

1. 安装 Java(Tomcat 需要 Java 环境)

Tomcat 运行在 Java 环境下,因此首先需要安装 Java。如果没有安装 Java,可以按照以下步骤进行安装。

  1. 更新系统软件包:

    sudo yum update
    
  2. 安装 OpenJDK(推荐使用 Java 11 或更高版本):

    sudo yum install java-11-openjdk
    
  3. 验证 Java 安装是否成功:

    java -version
    

    正确输出 Java 版本信息,例如:

    openjdk version "11.0.12" 2021-07-20
    

2. 下载并安装 Tomcat

  1. 前往 Apache Tomcat 官方下载页面(https://tomcat.apache.org/),选择你需要的 Tomcat 版本。你可以直接使用 wget 下载最新的二进制版本。

    以 Tomcat 10 为例:

    cd /opt
    sudo wget https://downloads.apache.org/tomcat/tomcat-10/v10.1.5/bin/apache-tomcat-10.1.5.tar.gz
    
  2. 解压 Tomcat 文件:

    sudo tar xzvf apache-tomcat-10.1.5.tar.gz
    
  3. 将解压后的目录重命名为 tomcat 方便管理:

    sudo mv apache-tomcat-10.1.5 tomcat
    

3. 配置 Tomcat

  1. 给 Tomcat 目录的执行脚本添加执行权限:

    sudo chmod +x /opt/tomcat/bin/*.sh
    
  2. 如果需要配置 Tomcat 的管理用户,可以编辑 tomcat/conf/tomcat-users.xml 文件,添加管理员用户:

    sudo vi /opt/tomcat/conf/tomcat-users.xml
    

    添加以下内容到 <tomcat-users> 标签内,允许 manager-guiadmin-gui 的用户访问:

    <role rolename="manager-gui"/>
    <role rolename="admin-gui"/>
    <user username="admin" password="password" roles="manager-gui,admin-gui"/>
    
  3. 保存并退出文件。

4. 启动 Tomcat

  1. 启动 Tomcat 服务:

    sudo /opt/tomcat/bin/startup.sh
    
  2. 查看 Tomcat 是否启动成功,可以查看日志:

    tail -f /opt/tomcat/logs/catalina.out
    

5. 配置 Tomcat 为开机自启动

  1. 创建一个 Systemd 服务文件,确保 Tomcat 在系统启动时自动启动。编辑新的服务文件:

    sudo vi /etc/systemd/system/tomcat.service
    
  2. 添加以下内容(根据你安装 Tomcat 的路径修改):

    [Unit]
    Description=Apache Tomcat Web Application Container
    After=network.target[Service]
    Type=forkingEnvironment=JAVA_HOME=/usr/lib/jvm/jre
    Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
    Environment=CATALINA_HOME=/opt/tomcat
    Environment=CATALINA_BASE=/opt/tomcat
    Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
    Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'ExecStart=/opt/tomcat/bin/startup.sh
    ExecStop=/opt/tomcat/bin/shutdown.shUser=tomcat
    Group=tomcat
    UMask=0007
    RestartSec=10
    Restart=always[Install]
    WantedBy=multi-user.target
    
  3. 保存并退出文件。

  4. 重新加载 Systemd 服务并启动 Tomcat:

    sudo systemctl daemon-reload
    sudo systemctl start tomcat
    sudo systemctl enable tomcat
    

6. 验证 Tomcat 运行状态

打开浏览器,访问以下地址查看 Tomcat 是否正常运行:

http://<your-server-ip>:8080

你应该看到 Tomcat 欢迎页面,表示 Tomcat 已经成功安装并运行。

7. 允许防火墙开放 8080 端口(可选)

如果防火墙启用,需要开放 Tomcat 的默认端口(8080):

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

至此,Tomcat 已成功安装并配置为开机自启动。

相关文章:

【从0开始在CentOS 9中安装Tomcat】

从0开始在CentOS 9中安装Tomcat 1. 安装 Java&#xff08;Tomcat 需要 Java 环境&#xff09;2. 下载并安装 Tomcat3. 配置 Tomcat4. 启动 Tomcat5. 配置 Tomcat 为开机自启动6. 验证 Tomcat 运行状态7. 允许防火墙开放 8080 端口&#xff08;可选&#xff09; 要在 Linux 上安…...

学习Vue3的第五天

目录 API对比 shallowRef 与 shallowReactive 对比总结 使用场景 总结 readonly 与 shallowReadonly 对比总结 使用场景 总结 toRaw 与 markRaw 对比总结 使用场景 总结 customRef 应用场景 总结 示例&#xff1a;异步数据获取 Vue3新组件 Teleport Suspen…...

Python 类中使用 cursor.execute() 时语法错误的解决方法

在 Python 类中使用 cursor.execute() 时&#xff0c;出现语法错误&#xff08;如 SyntaxError 或 SQL 语法相关错误&#xff09;通常是因为 SQL 语句格式不正确、占位符使用不当&#xff0c;或参数传递方式不符合预期。以下是解决此类问题的常见方法和建议。 问题背景 在 Pyt…...

怎么选择靠谱AI论文生成工具?看完我的试用都会明白!

2024年上半年开始AI论文写作工具开始火了&#xff0c;层出不穷&#xff01;作为一个经常需要写论文的懒人&#xff0c;我非常好奇这些AI工具的实际效果到底怎么样&#xff1f;为了测试不同工具的实力&#xff0c;我对他们都进行了试用&#xff0c;发现了一些意想不到的结果....…...

Java 每日一刊(第3期):Hello World

文章目录 前言Hello World程序是如何执行的Hello World 里有什么本期小知识 阳光洒进窗台&#xff0c;花香伴着书香&#xff0c;静谧而温暖&#xff0c;仿佛时光停驻。 前言 这里是分享 Java 相关内容的专刊&#xff0c;每日一更。 本期将为大家带来以下内容&#xff1a; “…...

git一个项目关联多个远程仓库

一行代码就行&#xff1a; git remote set-url origin [想要关联的远程仓库地址]想要关联哪个就切换哪个 或者不用每次切换&#xff0c;集中管理&#xff1a; Git->Manage Remotes 点击“”&#xff0c;填入Name和想要关联的远程库地址 每次push时执行命令 git push [为…...

衡石分析平台使用手册-部署前准备

部署前准备​ 1.根据版本获取 k8s 部署配置文件。 安装版本部署文件组件依赖3.xk8s-yamlmetadb、engine、hengshi zookeeper4.0.xk8s-yamlmetadb、engine、hengshi、minio、zookeeper4.1.xk8s-yamlmetadb、engine、hengshi、minio、redis、flink、zookeeper4.2.xk8s-yamlmeta…...

AI大模型全栈工程师课程笔记 - RAG 检索增强生成

文章目录 \1. RAG\2. 构建流程 2.1 文档加载与切分2.2 传统检索引擎2.3 LLM接口封装2.4 构建prompt \3. 向量检索\4. 向量数据库\5. 基于向量检索的RAG\6. 进阶知识 6.1 文本分割粒度6.2 检索后再排序6.3 测试 1. RAG RAG&#xff08;Retrieval Augmented Generation&#…...

【时时三省】c语言例题----华为机试题<进制转换>

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 1&#xff0c;题目 HJ5 进制转换 描述 写出一个程序&#xff0c;接受一个十六进制的数&#xff0c;输出该数值的十进制表示。 数据范围&#xff1a;保证结果在 1≤n≤231−1 1≤n≤231−1…...

根据NVeloDocx Word模板引擎生成Word(四)

前面介绍了《E6低代码开发平台》的Word模版引擎NVeloDocx&#xff0c;实现了表单的基本字段、子表、单张图片、二维码、条形码怎么基于NVelocity脚本输出到Word文件&#xff0c;都是些比较简单且常用的需求。 本篇介绍怎么基于NVeloDocx在Word中插入图表&#xff0c;目前只支持…...

C++笔记---stack和queue

1. stack的介绍及重要接口 stack---栈&#xff0c;是一种“先进后出&#xff0c;后进先出”的数据结构。 此处的stack是STL库中定义的一个类模板&#xff0c;用于实例化出存储各种类型数据的栈。 bool empty() const;判断栈是否为空(空true/非空false)size_t size() const;返…...

springboot Rabbit MQ topic 配置文件绑定队列和交换机

Spring Boot 中如何将队列和交换机绑定&#xff08;含实例讲解&#xff09; 在使用 Spring Boot 开发高并发的秒杀系统或者其他场景时&#xff0c;RabbitMQ 是常用的消息队列中间件之一。本文将详细讲解如何在配置类中通过代码将队列与交换机绑定&#xff0c;并指定路由键来实…...

Visual Studio 2019密钥

Visual Studio 2019 Enterprise&#xff08;企业版&#xff09;&#xff1a;BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Professional&#xff08;专业版&#xff09;&#xff1a;NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y...

【三元组枚举中点】【树状数组】个人练习-Leetcode-1395. Count Number of Teams

题目链接&#xff1a;https://leetcode.cn/problems/count-number-of-teams/description/ 题目大意&#xff1a;给一个数组rating[]&#xff0c;求符合以下任一条件的三元组i, j, k的个数 rating[i] < rating[j] < rating[k]rating[i] > rating[j] > rating[k] …...

Anaconda 中遇到CondaHTTPError: HTTP 404 NOT FOUND for url的问题及解决办法

最近在跑一个开源项目遇到了以下问题&#xff0c;查了很多资料都大&#xff08;抄&#xff09;同&#xff08;来&#xff09;小&#xff08;抄&#xff09;异&#xff08;去&#xff09;的&#xff0c;解决不了根本问题&#xff0c;费了很大的劲终于得以解决&#xff0c;记录如…...

数据库系统 第51节 数据库事务管理

数据库事务管理是数据库管理系统&#xff08;DBMS&#xff09;中用于确保数据完整性和一致性的一组机制。事务是一组不可分割的操作序列&#xff0c;这些操作要么全部成功&#xff0c;要么全部失败。以下是数据库事务管理的关键组成部分的详细叙述&#xff1a; 1. 事务隔离级别…...

分解+优化+组合+对比!核心无忧!VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测

分解优化组合对比&#xff01;核心无忧&#xff01;VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测 目录 分解优化组合对比&#xff01;核心无忧&#xff01;VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.…...

二十三种设计模式之建造者模式(类比汽车制造厂好理解一些)

目录 1. 设计模式的分类 2. 定义 3. 建造者模式通常包含以下几个角色 4. 示例代码 5. 建造者模式的主要优点 1. 设计模式的分类 创建型模式(五种)&#xff1a;工厂方法模式、单例模式、抽象工厂模式、原型模式、建造者模式。 结构型模式(七种)&#xff1a;适配器模式、代…...

macos 系统文件操作时提示 Read-only file system 解决方法

这个情况是因为文件系统为只读, 需要我们执行一下命令重新将系统文件挂载为读写模式, 命令如下: sudo mount -uw / 这里的 mount 就是硬盘挂载命令, 后面的 -uw选项说明如下, 最后的 / 表示的是跟目录, 可以指定要修改的挂载路径,也可以默认. -u -u标志表示应更改已装载文…...

银行业务架构指导应用架构规划及设计方法

摘要 业务架构指导应用架构设计方法是指依托业务架构设计成果,开展应用架构应用划分设计、IT服务分层设计和数据模型设计的方法。通过业务架构指导应用架构设计,以IT研发项目驱动的方式,由IT系统落地业务架构设计成果,实现对业务流程快速拼接和产品灵活配置的支持,从而提升…...

NotebookLM讨论模块写作:为什么87%的用户输出缺乏论证纵深?3个可立即部署的认知框架

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM讨论模块写作的认知断层诊断 NotebookLM 的讨论模块&#xff08;Discussion Panel&#xff09;旨在基于用户上传的文档生成上下文感知的对话&#xff0c;但实践中常出现“理解正确却表达失焦…...

语义分割模型库选型指南:除了segmentation_models_pytorch,还有哪些宝藏库?附113个编码器实战对比

语义分割模型库深度选型指南&#xff1a;从SMP到工业级解决方案全景解析 当面对一个全新的语义分割项目时&#xff0c;工程师们往往会在众多开源模型库前陷入选择困难。本文将带您深入剖析主流语义分割工具库的技术特性、适用场景与实战表现&#xff0c;帮助您做出精准的技术决…...

从BERT到GPT-4:大语言模型的技术演进与应用实践

1. 从单向到双向&#xff1a;大语言模型如何重塑AI的认知边界如果你在2018年之前问我&#xff0c;一个AI模型能不能同时理解一句话里每个词的前后文关系&#xff0c;我会告诉你这很难。那时的主流模型&#xff0c;比如OpenAI的GPT初代&#xff0c;就像一个只能从左到右阅读的读…...

【困难】字符串匹配问题-Java:递归解法

分享一个大牛的人工智能教程。零基础&#xff01;通俗易懂&#xff01;风趣幽默&#xff01;希望你也加入到人工智能的队伍中来&#xff01;请轻击人工智能教程大家好&#xff01;欢迎来到我的网站&#xff01; 人工智能被认为是一种拯救世界、终结世界的技术。毋庸置疑&#x…...

Vector CAN卡配置避坑指南:xlSetApplConfig函数详解与硬件通道分配实战

Vector CAN卡配置避坑指南&#xff1a;xlSetApplConfig函数详解与硬件通道分配实战 当你在深夜调试Vector CAN设备时&#xff0c;突然看到"Channel already assigned"的红色错误提示&#xff0c;是否感到一阵窒息&#xff1f;这种场景对于使用Vector硬件进行二次开发…...

用 Mass Change Wizard 批量治理 SAP S/4HANA Business Role

在 SAP S/4HANA Cloud 的权限治理里,最怕的不是创建一个 Business Role,而是系统上线一段时间后,几十个甚至上百个 Business Role 需要一起调整。业务团队说,财务共享中心要启用新的 SAP Fiori Launchpad Space。Basis 团队说,旧的自定义 Space 要逐步退出。审计团队又补了…...

三分钟搞定全网音乐歌词:双平台智能歌词下载工具完全指南

三分钟搞定全网音乐歌词&#xff1a;双平台智能歌词下载工具完全指南 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到心爱歌曲的歌词而烦恼吗&#xff1f;无…...

心理学实验小白必看:用E-Prime 3.0从零设计你的第一个Stroop任务(附完整流程)

心理学实验入门&#xff1a;用E-Prime 3.0构建专业级Stroop实验全指南 第一次打开E-Prime时&#xff0c;满屏的控件和属性面板可能让你感到无从下手——这几乎是每个心理学研究生的必经之路。作为认知心理学最经典的实验范式之一&#xff0c;Stroop任务不仅能验证注意与自动加…...

SteamVR Unity插件实战:构建跨平台VR交互系统的完整方案

SteamVR Unity插件实战&#xff1a;构建跨平台VR交互系统的完整方案 【免费下载链接】steamvr_unity_plugin SteamVR Unity Plugin - Documentation at: https://valvesoftware.github.io/steamvr_unity_plugin/ 项目地址: https://gitcode.com/gh_mirrors/st/steamvr_unity_…...

Contextcore:轻量高性能的框架无关状态管理核心

1. 项目概述&#xff1a;一个为现代前端应用量身定制的状态管理核心 如果你正在开发一个中大型的React、Vue或任何现代前端应用&#xff0c;并且对现有状态管理库的复杂性、样板代码量或者性能优化感到头疼&#xff0c;那么 lucifer-ux/Contextcore 这个项目很可能就是你一直…...