Ubuntu 20.04 如何安装 Apache Tomcat?详细安装步骤

在 Ubuntu 20.04 上安装 Apache Tomcat 最稳妥的方式是结合 OpenJDK 和官方二进制包,全程无需编译,适合追求稳定性的生产环境部署。

Tomcat 作为 Java 生态中应用最广泛的 Web 服务器和 Servlet 容器,其核心优势在于轻量级与高兼容性,对于许多开发者而言,如何在 Ubuntu 20.04 这一长期支持版本上构建可靠的服务环境,往往是项目上线前的第一道门槛,许多初学者容易陷入直接使用 apt 安装旧版本 Tomcat 的误区,导致功能缺失或安全漏洞,掌握手动安装最新稳定版的方法,不仅是技术能力的体现,更是保障业务连续性的关键。

更新Linux内核的方法解决Ubuntu20.04系统安装后wifi图标不显示问题
加载中
更新Linux内核的方法解决Ubuntu20.04系统安装后wifi图标不显示问题

环境准备与 Java 依赖配置

Tomcat 的运行完全依赖于 Java 环境,因此第一步是确保系统具备正确的 JDK 版本,Ubuntu 20.04 默认仓库中的 OpenJDK 版本可能较老,建议手动安装 OpenJDK 11 或 17,以匹配 Tomcat 9 或 10 的需求。

安装 OpenJDK 运行时环境

打开终端,首先更新软件包索引,确保获取最新的软件源信息,随后,执行安装命令,业内专家指出,选择 OpenJDK 而非 Oracle JDK 能显著降低企业级部署的授权复杂度。

  1. 更新系统包列表:sudo apt update
  2. 安装 OpenJDK 11:sudo apt install openjdk-11-jdk

安装完成后,通过 java -version 验证版本,若输出包含 “OpenJDK 11.x.x”,则说明环境就绪,Tomcat 即可识别 Java 路径,无需额外配置复杂的 CLASSPATH 环境变量。

创建专用系统用户

出于安全考虑,严禁使用 root 用户运行 Tomcat 服务,创建一个专用的低权限用户是最佳实践,这能有效限制潜在攻击者对系统文件的访问范围。

创建 tomcat 用户与组

执行以下命令创建名为 tomcat 的系统用户,并指定其主目录为 /opt/tomcat。

  • sudo groupadd tomcat
  • sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

    Ubuntu 20.04 如何安装 Apache Tomcat?详细安装步骤

这里的 -s /bin/false 参数确保该用户无法登录系统,仅用于运行服务,极大提升了系统安全性。

下载与部署 Tomcat 二进制包

相比于使用 apt 安装的版本,直接从 Apache 官网下载二进制包能确保你获得最新的安全补丁和功能特性,这是许多资深运维人员在处理 Ubuntu 20.04 安装 Tomcat 最新稳定版 时的首选方案。

获取安装包

访问 Apache Tomcat 官方下载页面,找到最新的稳定版本(Tomcat 9.0.x),使用 wget 命令将压缩包下载到 /tmp 目录。

  1. 进入临时目录:cd /tmp
  2. 下载压缩包:sudo wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gz

注意:版本号需根据实际最新情况调整,下载完成后,验证文件完整性,确保未损坏。

解压与权限设置

将压缩包解压至 /opt 目录,这是 Linux 系统中存放可选软件的标准位置。

移动与授权

  1. 解压:sudo tar xzvf apache-tomcat-9.tar.gz -C /opt/tomcat --strip-components=1
  2. 赋予 tomcat 用户所有权:sudo chown -R tomcat:tomcat /opt/tomcat
  3. 赋予执行权限:sudo chmod -R 750 /opt/tomcat
  4. 这一步至关重要,它确保了只有 tomcat 用户及其所属组才能读取和修改配置文件,防止其他用户篡改服务行为。

    配置 Systemd 服务管理

    为了让 Tomcat 能够随系统启动并方便管理,需要创建 Systemd 服务单元文件,这是实现 Ubuntu 20.04 Tomcat 开机自启配置 的核心步骤,也是区分新手与专业运维的分水岭。

    编写服务文件

    创建一个新的服务文件 /etc/systemd/system/tomcat.service

    服务文件内容详解

    使用文本编辑器打开文件,填入以下内容,这里需要明确 JAVA_HOME 路径,确保 Tomcat 能找到 Java 环境。

    Ubuntu 20.04 如何安装 Apache Tomcat?详细安装步骤

    [Unit]
    Description=Apache Tomcat Web Application Container
    After=network.target
    

    [Service]Type=forking

    User=tomcatGroup=tomcat

    Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"Environment="CATALINA_HOME=/opt/tomcat"Environment="CATALINA_BASE=/opt/tomcat"Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"

    ExecStart=/opt/tomcat/bin/startup.shExecStop=/opt/tomcat/bin/shutdown.sh

    [Install]WantedBy=multi-user.target

    CATALINA_OPTS 设置了内存限制,防止 Tomcat 占用过多物理内存导致系统崩溃。-Xms512M 表示初始堆内存为 512MB,-Xmx1024M 表示最大堆内存为 1GB,对于大多数中小型应用,这一配置足以平衡性能与资源消耗。

    启用并启动服务

    保存文件后,重新加载 Systemd 守护进程,使新配置生效。

    1. 重载配置:sudo systemctl daemon-reload
    2. 启动服务:sudo systemctl start tomcat
    3. 设置开机自启:sudo systemctl enable tomcat

    通过 sudo systemctl status tomcat 检查服务状态,若显示 “active (running)”,则说明部署成功。

    防火墙与访问测试

    Ubuntu 20.04 默认启用 UFW 防火墙,若不开放端口,外部将无法访问 Tomcat。

    开放 8080 端口

    Tomcat 默认监听 8080 端口,执行以下命令允许 HTTP 流量通过。

    • sudo ufw allow 8080/tcp
    • sudo ufw reload

    验证部署

    在浏览器中输入 http://你的服务器IP:8080,若看到 Apache Tomcat 的默认欢迎页面,说明安装完全成功,你可以尝试部署一个简单的 WAR 包,验证应用加载能力。

    Ubuntu 20.04 如何安装 Apache Tomcat?详细安装步骤

    常见问题排查与优化建议

    在实际操作中,可能会遇到一些典型问题,页面加载缓慢或内存溢出。

    内存溢出处理

    若应用复杂,默认 1GB 内存可能不足,可通过修改 tomcat.service 中的 CATALINA_OPTS 增加 -Xmx 值,据行业共识认为,合理调整 JVM 参数是提升 Tomcat 稳定性的最有效手段之一。

    日志查看

    Tomcat 的日志位于 /opt/tomcat/logs/ 目录下,若服务启动失败,优先查看 catalina.out 文件,其中记录了详细的错误堆栈信息,能帮助快速定位问题。

    Q&A:Ubuntu 20.04 安装 Tomcat 的常见疑问

    Ubuntu 20.04 安装 Tomcat 与 CentOS 有何区别?

    主要区别在于包管理器和初始化系统,Ubuntu 使用 apt 和 Systemd,而 CentOS 使用 yum/dnf 和 Systemd,虽然服务管理命令相似,但 Ubuntu 的默认防火墙 UFW 比 CentOS 的 firewalld 更易于配置简单规则,Ubuntu 的软件源更新频率更高,获取最新 JDK 和 Tomcat 版本更为便捷。

    Tomcat 8.5 和 9.0 在 Ubuntu 20.04 上哪个更推荐?

    Tomcat 9.0 是当前的主流稳定版,支持最新的 Java EE 规范和更好的性能优化,Tomcat 8.5 已进入维护模式,仅接收安全补丁,除非有遗留应用强制要求,否则应优先选择 Tomcat 9.0,两者在 Ubuntu 20.04 上的安装步骤完全一致,区别仅在于下载的版本号。

    如何修改 Tomcat 的默认端口?

    编辑 /opt/tomcat/conf/server.xml 文件,找到 <Connector port="8080" protocol="HTTP/1.1" .../> 行,将 8080 修改为目标端口,如 80,保存后重启 Tomcat 服务即可生效,若修改为非特权端口(大于 1024),无需 root 权限;若修改为 80 或 443,需确保 tomcat 用户有相应权限或使用反向代理。

    首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/475443.html

(0)
BGP选路原则13条规则是什么?BGP选路优先级顺序详解
上一篇 2026年7月9日 16:28
Python怎么读才标准?Python正确发音及拼写
下一篇 2026年7月9日 16:30

相关推荐

  • 服务器宽带20m可以承受多少人

    20M带宽的服务器,在典型网页应用场景下,大约能同时支撑200-300人进行常规浏览,但实际数字受业务类型、并发模型和优化程度影响,需要具体测算,影响20M带宽承载人数的关键因素带宽的单位与真实速度20M带宽指的是20Mbps,即每秒传输20兆比特,换算成字节约为2.5MB/s,这个速度是所有用户共享的,每个用……

    2026年8月24日
    000
  • 4核8g服务器能承受多少并发?,高并发服务器怎么选?

    4核8G的服务器并发承受能力没有固定数值,它取决于业务逻辑、架构设计和代码优化,在合理配置下通常能支撑数百到数千的并发请求,但具体数字必须通过压力测试结合业务场景得出,并发数的决定因素业务类型与资源消耗不同业务对服务器资源的消耗差异巨大,静态页面请求主要消耗带宽和少量CPU,而动态页面需要执行脚本、查询数据库……

    2026年8月11日
    900
  • 火影VIP换服务器要多少天一次,换服务器需要什么条件

    火影VIP换服务器通常每30天可以申请一次,具体周期以游戏内政策为准,部分版本支持VIP等级缩短等待时间,火影VIP换服务器周期与规则VIP等级与冷却时间的关系在多数《火影忍者》授权手游中,VIP玩家享有服务器迁移特权,但冷却周期与VIP等级挂钩,根据游戏版本更新日志,VIP1-VIP5玩家每30天可申请一次……

    2026年8月19日
    500
  • 国外JavaScript经典封装有哪些,JS封装技巧怎么用?

    在JavaScript开发领域,封装是提升代码复用性、维护性和执行效率的核心手段,通过借鉴国际主流开源社区的最佳实践,开发者可以构建出更加健壮的前端应用,本文作为国外JavaScript经典封装集合整理第1/3页的开篇,将重点聚焦于基础工具函数、类型检测及DOM操作的高效封装方案,这些代码模式经过全球海量项目的……

    2026年2月28日
    12800
  • 安装机架式服务器要多少钱一台,性价比高不高?

    安装一台机架式服务器的费用没有固定标准,一台入门级服务器加上基本的安装上架,预算在5000元到8000元可以起步;如果涉及高性能计算或托管在高端机房,成本可能超过5万元,核心在于硬件配置和机房选择,影响价格的核心因素机架式服务器的安装成本由多个模块叠加而成,每个环节的差异都会导致最终报价浮动,理解这些因素,才能……

    2026年8月2日
    100
  • AI人工智能算法大赛是什么?人工智能算法大赛报名要求

    参加AI人工智能算法大赛是快速验证技术实力、获取行业资源及提升个人职业竞争力的最佳路径,建议优先选择百度飞桨、天池等具备真实产业场景的权威平台进行实战演练,人工智能早已不再是实验室里的概念游戏,而是深入各行各业的生产力工具,对于开发者、高校学生以及转型中的工程师而言,参与一场高质量的算法竞赛,不仅是简历上亮眼的……

    2026年6月10日
    6900
  • Contabo VPS真的不限流量吗?德国VPS推荐

    Contabo 2026年推出的$6.99/月KVM VPS方案,凭借8GB内存与200M带宽的极高性价比,成为德国地区建站、开发测试及轻量级应用部署的首选高性价比节点,在云计算市场内卷日益严重的当下,寻找一款既稳定又具备足够资源冗余的VPS并非易事,Contabo作为欧洲老牌服务商,其核心优势在于“堆料”策略……

    2026年6月28日
    1800
  • 三星16g服务器内存现在多少钱,值得买吗?

    三星16GB服务器内存的价格并非固定数值,它取决于内存类型(DDR4/DDR5、ECC/REG)、新旧程度及购买渠道,通常在数百元至上千元之间浮动,具体需根据服务器主板兼容性和预算选择,三星16GB服务器内存的价格构成规格差异是价格的核心因素服务器内存与普通台式机内存有本质区别,三星作为全球存储领导品牌,其服务……

    2026年7月28日
    1400
  • 国外业务中台服务代金券怎么领取?获取方法是什么?

    在全球化商业竞争日益激烈的当下,构建高效、稳定的海外业务中台已成为企业实现跨国运营的核心支撑,为了降低企业在基础设施搭建、API调用及系统集成过程中的初始投入风险,国外业务中台服务代金券作为一种极具战略价值的财务工具,能够有效帮助企业优化现金流结构,并加速技术架构的落地验证,通过科学合理地规划与使用这类代金券……

    2026年2月27日
    12900
  • 按量付费的ECS怎么停止?按量付费ECS停止后还收费吗

    停止按量付费的ECS实例并不等同于停止计费,只有正确理解“停止”与“释放”的区别,并妥善处理按需付费镜像的关联资源,才能真正实现成本的有效控制,许多用户误以为在控制台点击“停止”按钮后,账单就会停止滚动,这是一个常见的认知误区,停止实例仅能暂停计算资源(vCPU和内存)的费用,系统盘、公网IP及镜像许可费用往往……

    2026年3月27日
    9600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注