「从源码安装 Tomcat 全流程教程」

「从源码安装 Tomcat 全流程教程」

📘 一、文章简介(摘要)

本文将手把手教你在 Linux 系统中 从源码编译安装 Apache Tomcat,并配置 systemd 服务实现开机自启。
适合想要深入理解 Tomcat 工作原理、优化性能、或自定义构建版本的读者。

✅ 教程特点:

  • 兼容 Tomcat 9 / 10 / 10.1

  • 含源码编译 + 本地安装 + 服务化管理

  • 附完整命令、图示位置与错误排查

  • 适合初学者与开发者


🧩 二、为什么要源码安装 Tomcat?

默认的 Tomcat 二进制包已足够大多数项目使用,但源码安装可以让你:

  • ✨ 修改底层配置或源码

  • ⚙️ 优化性能与编译参数

  • 🧠 学习 Web 容器的内部机制

  • 💡 掌握企业部署所需的构建技能


⚙️ 三、准备环境与依赖

1️⃣ 安装所需组件

组件 用途
JDK Java 编译运行环境
Ant 构建工具,用于编译源码
Git 获取源码
APR/OpenSSL tomcat-native 加速库依赖

2️⃣ Ubuntu / Debian 环境配置


sudo dnf update 
sudo dnf install -y java-21-openjdk java-21-openjdk-deve ant

3️⃣ 配置环境变量

我们手动指定 JAVA_HOME 环境变量,让 Ant 强制使用 Java 21。

export JAVA_HOME=/usr/lib/jvm/java-21-openjdk
export PATH=$JAVA_HOME/bin:$PATH

echo $JAVA_HOME
java -version

输出应显示为 Java 21。


📦 四、获取 Tomcat 源码

下载源码包(推荐稳定版)

wget https://mirrors.tuna.tsinghua.edu.***/apache/tomcat/tomcat-9/v9.0.111/src/apache-tomcat-9.0.111-src.tar.gz
tar zxvf apache-tomcat-9.0.111-src.tar.gz
cd apache-tomcat-9.0.111-src


🏗️ 五、编译 Tomcat 源码

Tomcat 使用 Apache Ant 进行构建。

ant

默认会在 outputdist 目录生成完整的 Tomcat 运行包


🔧 六、部署 Tomcat

1️⃣ 移动安装目录

假设Tomcat编译输出在: /usr/apache-tomcat-9.0.111-src/output/build

Tomcat 可执行脚本应该在类似:

/usr/apache-tomcat-9.0.111-src/output/build/bin/startup.sh
/usr/apache-tomcat-9.0.111-src/output/build/bin/shutdown.sh
为了方便管理,建议移动到 /usr/local/tomcat9

创建 Tomcat 用户(非 root 运行)

mv /usr/apache-tomcat-9.0.111-src/output/build /usr/local/tomcat9
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
sudo chown -R tomcat:tomcat /opt/tomcat

2️⃣创建 systemd 服务文件

编辑 /etc/systemd/system/tomcat.service

vim /etc/systemd/system/tomcat.service

写入以下内容(推荐模板):

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/java-21-openjdk-21.0.8.0.9-1.el8.x86_64
Environment=CATALINA_HOME=/usr/local/tomcat9
Environment=CATALINA_BASE=/usr/local/tomcat9
Environment=CATALINA_PID=/usr/local/tomcat9/temp/tomcat.pid
Environment=JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true"

ExecStart=/usr/local/tomcat9/bin/catalina.sh start
ExecStop=/usr/local/tomcat9/bin/catalina.sh stop

3️⃣加载服务并启动

# 重新加载 systemd 配置
systemctl daemon-reload

# 启动 Tomcat
systemctl start tomcat

# 查看状态
systemctl status tomcat

# 设置开机自启
systemctl enable tomcat


🚀 七、启动与访问测试

编辑防火墙配置,放行8080端口

firewall-cmd --permanent --add-port=8080/tcp

重新载入防火墙配置

#重新载入防火墙配置
firewall-cmd --reload
#显示放行列表
firewall-cmd --list-ports

浏览器访问:http://ip:8080/

http://x.x.x.x:8080/ 


🧩 七、常见错误与排查

问题 可能原因 解决方法
curl: (7) Connection refused 端口未监听或防火墙阻止 检查 Tomcat 是否运行,防火墙是否放行
BUILD FAILED JDK 或 Ant 版本不符 升级到 JDK17+,Ant 1.10+
Permission denied 用户权限不足 tomcat 用户运行

转载请说明出处内容投诉
CSS教程网 » 「从源码安装 Tomcat 全流程教程」

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买