Tomcat 安装

server/2025/3/15 2:22:18/

一、Tomcat 下载

官网:Apache Tomcat® - Welcome!

 

1.1.下载安装包

下载安装包:

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.102/bin/apache-tomcat-9.0.102.tar.gz

安装 javajdk。

yum install java-1.8.0-openjdk.x86_64 -y

/etc/alternatives/jre_openjdk/ 是 OpenJDK JRE 的符号链接管理目录,通过 update-alternatives 实现版本切换。其内容指向实际安装的 JRE 路径,便于系统统一管理 Java 环境。

/etc/alternatives/jre_openjdk/ 目录作用

  • alternatives 系统:Linux 系统通过 update-alternatives 工具管理多个可替换的软件版本,例如 Java、Python 等。

  • JRE 指向:jre_openjdk 条目指向当前系统默认的 OpenJDK JRE(Java Runtime Environment)。

  • 符号链接管理:该目录下的文件实际是符号链接,指向具体的 JRE 安装路径。

/etc/alternatives/jre_openjdk/
├── bin/                # 符号链接到JRE的二进制目录(如javajavac等)
├── include/            # 符号链接到JRE的头文件
├── lib/                # 符号链接到JRE的核心库(rt.jar等)
├── man/                # 符号链接到JRE的手册页
└── ...其他资源文件...

 

1.2.解压

因为 tomcat 直接可用,所以直接解压到相应的目录。

tar xzf apache-tomcat-9.0.102.tar.gz -C /usr/local

 

1.3.启动

进入目录,创建软连接,便于操作,启动服务。

cd /usr/local/
ln -s apache-tomcat-9.0.102 tomcat  # 创建软连接
cd /usr/local/tomcat/bin/           # 进入二进制目录
bash startup.sh                     # 运行启动脚本,启动服务

浏览器可访问到 Tomcat,安装成功。

 

 


 

二、配置 Tomcat 启动脚本

在 /usr/local/tomcat/conf/tomcat.conf 文件中设置 JAVA_HOME=/etc/alternatives/jre_openjdk/,其作用和背后的原因主要有以下几点:

作用

  • 指定 Java 运行环境路径:JAVA_HOME 是一个环境变量,Tomcat 作为 Java 应用服务器,需要知道 Java 运行时环境(JRE)或者 Java 开发工具包(JDK)的安装路径。通过设置 JAVA_HOME,Tomcat 可以找到 Java 解释器(java 命令)以及相关的类库,从而能够正常启动和运行基于 Java 编写的 Web 应用程序。

  • 确保一致性:当在系统中存在多个 Java 版本时,明确指定 JAVA_HOME 可以确保 Tomcat 始终使用预期的 Java 版本来运行,避免因默认 Java 版本的改变而导致的兼容性问题或运行错误。

选择 /etc/alternatives/jre_openjdk/ 路径的原因

  • 系统级 Java 版本管理:在许多 Linux 系统中,/etc/alternatives 目录是 update-alternatives 工具的一部分,这个工具用于管理系统中可替换的软件版本。/etc/alternatives/jre_openjdk/ 通常是一个符号链接,它指向系统当前默认的 OpenJDK JRE 安装目录。通过使用这个符号链接,即使系统中 Java 版本发生了更新或切换,/etc/alternatives/jre_openjdk/ 会自动更新到新的默认 Java 版本路径,从而保证 Tomcat 能够使用最新的默认 Java 环境,而无需手动修改 JAVA_HOME 的值。

  • 灵活性和兼容性:使用 /etc/alternatives/jre_openjdk/ 路径可以让系统管理员方便地在不同的 Java 版本之间进行切换,而不会影响 Tomcat 的配置。例如,如果需要将系统的 Java 版本从 OpenJDK 11 升级到 OpenJDK 17,只需要使用 update-alternatives 工具更新默认的 Java 版本,/etc/alternatives/jre_openjdk/ 会自动指向新的 Java 安装目录,Tomcat 可以继续正常运行。

vim /usr/local/tomcat/conf/tomcat.conf    # 创建文件写入以下内容
​
JAVA_HOME=/etc/alternatives/jre_openjdk/

 

2.1.封装 Tomcat 启动和停止操作

作用

  1. 封装 Tomcat 启动和停止操作

  • /usr/bin/tomcat 文件实际上是一个简单的 shell 脚本,它的主要作用是将 Tomcat 的启动和停止操作进行封装。脚本中使用了 case 语句来根据用户传入的第一个参数(即 $1)来决定执行相应的操作:

    • 当传入的参数是 start 时,脚本会执行 /usr/local/tomcat/bin/startup.sh,这是 Tomcat 自带的启动脚本,用于启动 Tomcat 服务器。

    • 当传入的参数是 stop 时,脚本会执行 /usr/local/tomcat/bin/shutdown.sh,这是 Tomcat 自带的停止脚本,用于停止 Tomcat 服务器。

  1. 提供统一的操作接口

  • 通过这个脚本,用户可以使用更简洁、统一的命令来启动和停止 Tomcat。例如,用户可以直接在命令行中输入 tomcat start 来启动 Tomcat,输入 tomcat stop 来停止 Tomcat,而不需要每次都记住并输入完整的 startup.sh 或 shutdown.sh 脚本路径。

为什么要提前编辑此文件

  • 1. 方便 systemd 服务管理

    • 在编写 systemd 服务单元文件 /lib/systemd/system/tomcat.service 时,systemd 服务单元文件需要指定服务的启动和停止命令。如果不提前封装这个脚本,systemd 服务单元文件中需要直接指定 /usr/local/tomcat/bin/startup.sh 和 /usr/local/tomcat/bin/shutdown.sh 作为启动和停止命令,这样会使 systemd 服务单元文件的配置相对复杂。而使用封装好的 /usr/bin/tomcat 脚本,systemd 服务单元文件可以更简洁地指定启动和停止命令。

  • 2. 便于后续维护和扩展

    • 如果后续需要对 Tomcat 的启动或停止操作进行修改,例如在启动前添加一些环境变量的设置,或者在停止后进行一些清理工作,只需要修改 /usr/bin/tomcat 脚本即可,而不需要修改 systemd 服务单元文件。这样可以提高代码的可维护性和可扩展性。

  • 3. 符合脚本封装和模块化的思想

    • 将相关的操作封装到一个脚本中,符合编程中模块化和封装的思想,使代码结构更加清晰,易于管理。同时,也方便在不同的场景下复用这个脚本,例如在自动化部署脚本中使用。

vim /usr/bin/tomcat
​
#!/bin/bash
case $1 instart)/usr/local/tomcat/bin/startup.sh;;stop)/usr/local/tomcat/bin/shutdown.sh
esac

给脚本设置可执行权限。

chmod +x /usr/bin/tomcat 

 

2.2.编写系统服务脚本

编写系统服务脚本。

vim /lib/systemd/system/tomcat.service
​
[Unit]
Description=Tomcat
After=syslog.target network.target
​
[Service]
Type=forking
EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
ExecStart=/usr/bin/tomcat start
ExecStop=/usr/bin/tomcat stop
PrivateTmp=true
User=tomcat
Group=tomcat
​
[Install]
WantedBy=multi-user.target

创建系统用户。

useradd -s /sbin/nologin -M tomcat

修改目录文件权限。

chown -R tomcat.tomcat /usr/local/tomcat/

重新加载 systemd 服务管理器配置。

systemctl daemon-reload

 


 

三、启动服务

systemctl start tomcat.service

查看服务状态。

浏览器可访问。


http://www.ppmy.cn/server/175033.html

相关文章

软件工程概述、软件过程模型、逆向工程(高软45)

系列文章目录 软件工程概述、软件过程模型、逆向工程。 文章目录 系列文章目录前言一、软件工程概述二、能力成熟度模型1.能力成熟度模型CMM2.能力成熟度模型集成CMMI 三、软件过程模型1.瀑布模型SDLC2.原型化模型3.螺旋模型4.增量模型5.喷泉模型6.敏捷模型7.统一过程模型RUP 四…

数字图像处理与Python语言实现-Box模糊CUDA实现

Box模糊CUDA实现 文章目录 Box模糊CUDA实现1、Box模糊的基本原理2、算法优化:滑动窗口技术3、参数对模糊效果的影响4、Box模糊的优缺点5、与高斯模糊的对比6、实际应用场景7、算法实现7.1 PyCUDA实现7.2 CuPy实现7.3 C++与CUDA实现8、总结在图像处理领域,**Box模糊(方框模糊…

VSCode 配置优化

Visual Studio Code(VSCode)是一款功能强大且高度可定制的代码编辑器。通过合理的配置和优化,可以显著提升开发效率。以下是一份详细的 VSCode 配置优化指南,涵盖常用设置、扩展推荐、快捷键优化等内容。 1. 基本设置优化 通过修…

uniapp+v3开发小程序拖拽排序功能

项目需求:需要根据用户喜好手动排序(这里只需要上下排序) 排序前(左图) > 排序时(右图) 拖动演示 思路: 1.创建一个拖动的元素,当拖动元素与其他元素触碰时更换位置重排列表 2.长按元素记录起点位置与下标,并将目标元素赋值与拖动元素 3.移动时处理触碰逻辑 4.松手时清…

制造业数字化转型,汽车装备制造企业数字化转型案例,智能制造数字化传统制造业数字化制造业数字化转型案例

《某制造业企业信息化整体解决方案》PPT展示了一个汽车装备企业的整体信息化解决方案,阐述了该企业的业务特点和现状,主要包括按订单生产、多级计划和产品跟踪等,分析了信息化建设的主要困难,如信息管理手工化、过程数据追溯困难、…

快速学习Bootstrap前端框架

什么是 Bootstrap? Bootstrap 是一个开源的前端框架,用于快速开发响应式(Responsive)和美观的网页。它包含: ✅ HTML 组件(导航栏、按钮、表单等) ✅ CSS 样式(网格系统、排版、颜色等) ✅ JavaScript 交互(模态框、轮播图、工具提示等) 官网:Bootstrap The mo…

Java后端序列化工具 Jackson 和 FastJSON

1. Jackson(Spring Boot 默认支持,无需额外依赖) 1.1 添加依赖(如果使用 Spring Boot,默认已有,无需添加) 如果你不是 Spring Boot 项目,需要手动添加 Jackson 依赖: …

Java Web大文件下载:从卡顿到丝滑的优化之旅

文章目录 Java Web大文件下载:从卡顿到丝滑的优化之旅一、引言二、优化前的困境(一)性能瓶颈初现(二)内存之殇(三)网络拥堵(四)代码示例:基本下载实现 三、优…