tomcat 在 Linux 环境下的安装与配置教程

article/2025/8/14 21:04:58

想部署个 Java Web 项目?那你八成会接触到 Tomcat。
本篇就是为 从没用过 Tomcat 的新手 写的,带你一步一步在 Linux 系统里把 Tomcat 装好、跑起来!


 为什么要学会用 Tomcat?

Tomcat 是一个免费的 Java Web 服务器,功能很全,但上手也不算太复杂,适合开发测试阶段用。
你写的 .jsp 文件、Spring 项目打包出来的 .war 文件,扔进去它就能跑,非常方便。


一、前置条件:你得先装好 Java

Tomcat 是用 Java 写的,它自己也跑在 Java 环境里。所以:

java -version

如果系统提示没这个命令,先装 Java:

Ubuntu / Debian 系:

sudo apt update
sudo apt install default-jdk -y

CentOS / RHEL 系:

sudo yum install java-11-openjdk -y

然后再用 java -version 检查一下,能输出版本号就没问题。


二、下载并安装 Tomcat

我们一般去官网手动下一个干净的版本(系统自带的常常太旧)。

1. 下载最新版

去 Tomcat 官网:https://tomcat.apache.org

比如你要装 Tomcat 10,可以运行:

cd /opt
sudo wget https://downloads.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz

2. 解压并整理一下名字

sudo tar -zxvf apache-tomcat-10.1.20.tar.gz
sudo mv apache-tomcat-10.1.20 tomcat

现在你的 Tomcat 安装路径是 /opt/tomcat/


三、启动 Tomcat 试试能不能跑

cd /opt/tomcat/bin
sudo ./startup.sh

正常的话会看到一堆输出,最后出现:

Tomcat started.

然后打开浏览器,访问:

http://localhost:8080

或者是你远程服务器的 IP + 端口:

http://你的IP地址:8080

能看到一个 Tomcat 的欢迎页面就说明成功啦!


四、配置登录管理后台(可选)

Tomcat 默认你是不能直接访问管理页面的,需要设置下用户。

编辑配置文件:

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

<tomcat-users> 标签之间加上这几行:

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="123456" roles="manager-gui,admin-gui"/>

保存后,重启 Tomcat:

./shutdown.sh
./startup.sh

然后你就能通过浏览器访问:

http://你的IP:8080/manager/html

用你设置的用户名密码登录后台管理界面。

 五、开放 8080 端口(如果是云服务器)

在阿里云、腾讯云、AWS 等地方,你要在后台安全组放行 8080 端口。

如果你本地机器装了防火墙,可以这样放行:

sudo ufw allow 8080

 六、想进阶点?搞个开机自启!

每次都手动 startup.sh 太麻烦?我们给它搞成 systemd 服务。

新建文件:

sudo nano /etc/systemd/system/tomcat.service

内容如下(根据你系统路径适当修改):

[Unit]
Description=Tomcat Server
After=network.target[Service]
Type=forkingEnvironment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pidExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.shUser=root
Group=root[Install]
WantedBy=multi-user.target

然后:

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

从此以后,系统每次启动,Tomcat 也会自动启动啦。


 七、部署自己的项目咋整?

很简单,把你打包好的 .war 文件扔进 /opt/tomcat/webapps/ 目录下,重启一下 Tomcat:

./shutdown.sh && ./startup.sh

它就会自动解压 .war 文件、生成访问路径,比如你扔进去的是 myapp.war,那你访问的地址就是:

http://你的IP:8080/myapp

总结下流程:

步骤操作描述
1安装 Java 环境
2下载并解压 Tomcat
3执行 startup.sh 启动服务
4浏览器访问 8080 查看效果
5设置用户,访问管理后台(可选)
6设置 systemd 服务(可选)
7上传 .war 项目部署运行


http://www.hkcw.cn/article/cHqYluKuWJ.shtml

相关文章

【机器学习】线性回归与逻辑回归的极致解析:从数学理论到实战案例

文章目录 1. 引言Python 代码示例 2. 线性回归2.1 线性回归的基本概念线性回归的定义数学表达式及模型假设 2.2 线性回归的工作原理最小二乘法&#xff08;Ordinary Least Squares, OLS&#xff09;梯度下降法在线性回归中的应用多元线性回归与一元线性回归的区别与联系 2.3 线…

机器学习-聚类分析算法

一、聚类分析的定义 聚类分析是一种无监督学习的统计分析方法。它的主要目的是将一个数据集中的样本&#xff08;或观测值&#xff09;按照某种相似性或距离度量划分成若干个类别&#xff08;簇&#xff09;。在聚类过程中&#xff0c;同一个簇内的样本具有较高的相似性&#…

LeetCode 热题 100 回顾

目录 一、哈希部分 1.两数之和 (简单) 2.字母异位词分组 (中等) 3.最长连续序列 (中等) 二、双指针部分 4.移动零 (简单) 5.盛最多水的容器 (中等) 6. 三数之和 (中等) 7.接雨水 (困难) 三、滑动窗口 8.无重复字符的最长子串 (中等) 9.找到字符串中…

人脸识别-特征算法

文章目录 一、LBPH算法1.基本原理2.实现步骤3.代码实现 二、Eigenfaces算法1.特点2.代码实习 三、FisherFaces算法1.算法原理2.算法特点3.代码实现 四、总结 人脸识别特征识别器是数字信息发展中的一种生物特征识别技术&#xff0c;其核心在于通过特定的算法和技术手段&#xf…

【数据结构】排序算法---计数排序(动图演示)

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaGo 结语 1. 定义 计数排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用。计数排序不是基于比较的排序算法&#xff0c;其核心在于将输入的数据值转化为键存储在额外开辟的数组…

【优选算法 | 哈希表】常见算法题的哈希表套路拆解

算法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;双指针滑动窗口二分查找前缀和位运算模拟链表 在刷题的过程中&#xff0c;我们会频繁遇到一些“高频套路”——而哈希表正是其中最常用也最高效的工具之一。它能帮助我们在 O(1) 的时间复杂度内完成查找、插入与…

数据结构《排序》

在之前数据结构之算法复杂度章节中我们学习了复杂度相关的概念&#xff0c;这就使得懂得如何来区分算法的好坏&#xff0c;在之前C语言专题中在指针的学习时我们了解了冒泡排序&#xff0c;之后再数据结构的二叉树章节中我们又学习了堆排序&#xff0c;其实排序不止这两种&…

TSP-旅行商问题(基于动态规划或蚁群算法求解)

1. TSP问题 旅行商问题(Travelling salesman problem, TSP)是运筹学和理论计算机科学中经典的问题.具体问题如下:给定一系列城市和每对城市之间的距离,求解访问每座城市一次并回到起始城市的最短回路. 2. 动态规划 本节参考旅行商问题(动态规划) 2.1 理论介绍 假设节点数…

【算法与数据结构】深入解析二叉树(二)之堆结构实现

文章目录 &#x1f4dd;二叉树的顺序结构及实现&#x1f320; 二叉树的顺序结构&#x1f320; 堆的实现&#x1f320; 堆的实现&#x1f309;堆向下调整算法&#x1f309;堆的创建&#x1f309;建堆时间复杂度&#x1f309;堆的插入&#x1f309;堆的删除 &#x1f320;堆向上调…

【leetcode】优先级队列的两种妙用:词频统计与动态中位数(附代码模板)

前言 &#x1f31f;&#x1f31f;本期讲解关于力扣的几篇题解的详细介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不…

【算法学习】哈希表篇:哈希表的使用场景和使用方法

算法学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言&#xff1a; 在之前学习数据结构时我们就学习了哈希表的使用方法&#xff0c;这里我们主要是针对哈希表的做题方法进行讲解&#xff0c;都是leetcode上的经典…

HDFS详解

一、HDFS 概述 定位与特点 分布式文件系统&#xff1a;HDFS&#xff08;Hadoop Distributed File System&#xff09;是 Hadoop 生态的核心组件&#xff0c;专为海量数据存储和批处理设计。 核心设计原则&#xff1a; 高容错性&#xff1a;数据自动多副本冗余&#xff0c;支持…

【数据结构】String字符串的存储

目录 一、存储结构 1.字符串常量池 2.字符串哈希表 2.1结构 2.2基础存储单位 2.2.1键对象 2.2.2值对象 二、存储过程 1.搜索 2.创建 三、存储位置 四、存储操作 1.new新建 2.intern入池 这是String类的详解&#xff1a;String类变量 一、存储结构 1.字符串常量池…

数据结构大作业——家谱管理系统(超详细!完整代码!)

目录 设计思路&#xff1a; 一、项目背景 二、功能分析 查询功能流程图&#xff1a; 管理功能流程图&#xff1a; 三、设计 四、实现 代码实现&#xff1a; 头文件 结构体 函数声明及定义 创建家谱树头结点 绘制家谱树&#xff08;打印&#xff09; 建立右兄弟…

北京将有7级大风小冰雹 雷电蓝色预警发布

6月1日17时50分,北京发布雷电蓝色预警,预计当天20时至次日2时,自西向东将有雷阵雨天气,局地短时雨强较大,并伴有7级左右短时大风和小冰雹,请注意防范。明天上午至中午前后依旧会出现分散性雷阵雨,雨量总体不大。午后至前半夜北风增强,阵风明显,外出时请做好防风措施,…

专家:印太战略实质是霸权工具 不会得逞

针对美国防长赫格塞思在香格里拉对话会上涉及中国的部分表态,有中国学者指出,美国所谓的“印太战略”实质上是霸权工具,不会得逞。在对话会上,赫格塞思再次提到所谓的“印太战略”,并呼吁亚太地区同盟国和合作伙伴国与美国一起构筑更现实的战略关系。国防大学教授孟祥青表…

SCNN(Spatial CNN) 模型学习记录

目录 1.模型架构 2.核心模块SCNN_*分析 SCNN&#xff08;Spatial As Deep: Spatial CNN for Traffic Lane Detection&#xff09;是一种专为交通车道线检测任务设计的深度神经网络架构&#xff0c;由中国科学院计算技术研究所提出&#xff0c;旨在在语义分割框架中增强空间信…

Lerobot框架使用(含本地数据训练)

本文包含从安装环境到完整使用Lerobot框架进行算法复现全流程。 A Install LeRobot 安装miniconda管理python环境 Linux mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/minicon…

小红书 web x-s x-t X-Mns 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析 cp execjs.compile(open(v…

国产化中间件基本使用_东方通(TongWeb7.0.E.6_P2)

tongweb开发操作文档 1、前期准备 进入官网申请使用,官网地址:https://www.tongtech.com 若提供的安装程序的授权文件已过期,请去官方网站重新申请。 2、安装部署 2.1、下载安装Tongweb 进入官网申请试用,官方会提供响应的嵌入式安装包及试用授权证书(3个月) 申请…