Tomcat 安装

ops/2025/3/14 21:38:27/

一、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/ops/165770.html

相关文章

Appium高级操作--ActionChains类、Toast元素识别、Hybrid App操作、手机系统API的操作

书接上回Appium高级操作--从源码角度解析--模拟复杂手势操作-CSDN博客文章浏览阅读712次,点赞24次,收藏6次。下面总结Appium模拟复杂手势整体流程创建类实例action时,一定要传入WebDriver实例参数,创建实例成功后,调用…

LINUX 指令大全

Linux服务器上有许多常用的命令,可以帮助你管理文件、目录、进程、网络和系统配置等。以下是一些常用的Linux命令: 文件和目录管理 ls:列出当前目录中的文件和子目录 bash lspwd:显示当前工作目录的路径 bash pwdcd:切…

MySQL数据库复制

文章目录 MySQL数据库复制一、复制的原理二、复制的搭建1.编辑配置文件2.在主库上创建复制的用户3.获取主库的备份4.基于从库的恢复5.建立主从复制6.开启主从复制7.查看主从复制状态 MySQL数据库复制 MySQL作为非常流行的数据库,支撑它如此出彩的因素主要有两个&am…

Stable Diffusion/DALL-E 3图像生成优化策略

Stable Diffusion的最新版本或社区开发的插件,可以补充这些信息以保持内容的时效性。 云端源想 1. 硬件与部署优化(进阶) 显存压缩技术 使用--medvram或--lowvram启动参数(Stable Diffusion WebUI),通过分…

cesium地图设置3d,2d,2.5d动态切换

通过修改cesium实例vw的scene的显示模式,来切换最终的显示模式。 Cesium.SceneMode总共有四个变量值,分别如下:NameTypeDescriptionMORPHINGnumber在3d与2d之间切换变体 between mode, e.g., 3D to 2D.COLUMBUS_VIEWnumber2.5d模式&#xff0…

# RAG 框架 # 一文入门 全链路RAG系统构建与优化 —— 架构、策略与实践

本文全面阐述了RAG系统从数据收集、数据清洗(包括领域专有名词处理)、智能数据分块与QA对生成,到向量化、向量数据库选择与配置,再到检索方式及重排序,直至整合输出、监控反馈和安全保障的全流程。通过这一完整方案&am…

makefile详解

1.背景介绍 linux中C语言可执行文件a.out的由来如下: test.c经过预编译到test.itest.i经过编译到test.stest.s经过汇编到test.otest.o经过链接到a.out 但是对于一个大型工程,每次生成新的可执行文件都要重新对每个文件(或者对修改了的文件)进行编译、…

云原生性能测试全解析:如何构建高效稳定的现代应用?

一、引言 随着云计算技术的快速发展,云原生(Cloud Native)架构成为现代应用开发的主流模式。云原生应用通常采用微服务架构、容器化部署,并利用 Kubernetes(K8s)等编排工具进行管理。然而,云原…