《国产系统运维笔记》第2期:在 openEuler 24.03 LTS 上在线部署 Tomcat 9 全记录

原文链接: https://mp.weixin.qq.com/s/LG0eWBUxUbceotz7mMWJ9g

在国产化浪潮和信创生态加速推进的今天,openEuler 作为华为发起并开源的高性能企业级 Linux 发行版,正被越来越多政府、金融、电信等关键行业采用。而 Tomcat 9 作为 Apache 基金会维护的经典 Servlet 容器,完美支持 Java EE 8 和 Servlet 4.0 规范,稳定性高、社区成熟,是部署传统 Java Web 应用(如 JSP、Spring MVC)的首选。

虽然 Spring Boot 内嵌了 Tomcat,但如果你需要部署 WAR 包、管理多个应用、或进行精细调优,独立安装 Tomcat 仍是刚需 。本文将带你在 openEuler 24.03 LTS 上干净、安全、高效地安装 Tomcat 9,并完成基础配置与验证。

一、准备工作:系统初始化与依赖安装

1. 确认系统版本

首先,登录你的 openEuler 24.03 系统(建议使用 root 或具备 sudo 权限的用户),执行:

bash 复制代码
cat /etc/os-release
uname -a

你应该会看到类似输出:

确认无误后,继续下一步。

2. 安装必要工具

openEuler 默认使用 dnf 作为包管理器(兼容 yum)。我们需要先安装几个常用工具(如果有则不用安装):

bash 复制代码
dnf install -y wget tar vim net-tools
  • wget:用于下载 Tomcat 安装包
  • tar:解压 .tar.gz 文件
  • vim:编辑配置文件
  • net-tools:包含 netstat,方便后续检查端口(可选)

3. 关闭 SELinux(可选,但建议先关闭避免权限问题)

bash 复制代码
# 临时设为 permissive 模式
setenforce 0
# 永久关闭(编辑配置文件)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

二、安装 JDK:Tomcat 的运行基石

Tomcat 是纯 Java 编写的,必须依赖 JDK。Tomcat 9 要求 JDK 8 或更高版本。我这里使用 OpenJDK 8(LTS 版本,性能好、安全性高),openEuler 官方源已提供。

安装 OpenJDK 8

bash 复制代码
dnf install -y java-1.8.0-openjdk.x86_64

验证安装

bash 复制代码
java -version

输出应类似:

小贴士:Tomcat 9 官方支持 JDK 8~17

没有报错,说明 JDK 已就绪!

三、下载并安装 Tomcat 9

bash 复制代码
dnf install -y tomcat

四、基础安全加固

默认 Tomcat 存在多个安全隐患,需要处理。

1. 防火墙放行tomcat服务端口

openEuler 默认使用 firewalld:

bash 复制代码
# tomcat默认服务端口8080,自行修改端口之后开放对应端口即可
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

优于直接关闭防火墙,更符合生产规范。

2. 修改默认端口(可选)

编辑 conf/server.xml(tomcat默认安装目录/usr/share/tomcat),将 8080 改为其他端口(如 8090):

修改之后重启tomcat服务生效配置:

bash 复制代码
 systemctl daemon-reload
 systemctl restart tomcat.service

五、启动并启用tomcat服务

使用dnf在线安装完成tomcat默认注册了systemd系统服务,但是没有启动。启动命令如下:

bash 复制代码
systemctl start tomcat

查看进程:

bash 复制代码
ps aux | grep tomcat

检查端口监听:

bash 复制代码
netstat -nlpt | grep 8080

访问默认页面

在浏览器中输入:

如果看到经典的 Apache Tomcat 首页(带猫 logo),恭喜你!Tomcat 已成功运行!

写在最后

在 openEuler 上安装 Tomcat 9,看似简单,却涉及系统安全、权限控制、服务管理、国产适配等多个维度。这不仅是技术操作,更是对"自主可控"理念的践行。

希望这篇实战指南,能帮你少走弯路。如果你觉得有用,欢迎点赞、收藏、转发给正在国产化迁移路上的同事!关注我,一起深耕国产技术栈!

相关推荐
华仔啊2 小时前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
SimonKing2 小时前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员
日月云棠18 小时前
各版本JDK对比:JDK 25 特性详解
java
用户83071968408219 小时前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide19 小时前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家19 小时前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java
花花无缺19 小时前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象
java
用户9083246027320 小时前
Spring Boot + MyBatis-Plus 多租户实战:从数据隔离到权限控制的完整方案
java·后端
桦说编程20 小时前
实战分析 ConcurrentHashMap.computeIfAbsent 的锁冲突问题
java·后端·性能优化
程序员清风1 天前
用了三年AI,我总结出高效使用AI的3个习惯!
java·后端·面试