导读:本期聚焦于公主创作的《Tomcat在Linux怎么安装?Linux系统Tomcat安装配置详细教程》,敬请观看详情。Tomcat在Linux上跑不起来,多半是JDK环境没配好。这篇教程从检查Java环境开始,一步步演示如何在Linux系统里下载、解压、安装Tomcat,详细讲解环境变量配置、端口修改、防火墙放行以及开机自启动设置,同时整理了启动失败、端口被占用、中文乱码等常见问题的排查方法。整个流程附带完整命令,新手照着做也能顺利把Tomcat跑起来,适合刚接触Linux部署Java Web项目的开发者参考。

Tomcat作为目前使用最广泛的Java Web容器之一,几乎是每个Java后端开发者绕不开的工具。在Windows上装Tomcat非常简单,双击exe一路下一步就行,但换到Linux环境后,很多新手就不知道从何下手了。其实Linux下的Tomcat安装并不复杂,整个过程可以拆解为:准备JDK环境、下载解压Tomcat、配置环境变量、启动验证、防火墙放行这几个步骤。下面按照实际部署顺序逐个讲解。

Tomcat在Linux怎么安装?Linux系统Tomcat安装配置详细教程

一、安装前的准备工作:确认JDK环境

Tomcat本身是用Java编写的,它必须依赖JDK才能运行,所以第一步是检查Linux系统里有没有装JDK。打开终端执行以下命令:

java -version
javac -version

如果命令能输出版本信息,比如显示java version "1.8.0_321"之类的字样,说明JDK已经安装好了。如果提示命令未找到,就需要先安装JDK。以CentOS为例,可以用yum直接安装OpenJDK:

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

Ubuntu或Debian系统则使用apt命令:

apt-get install -y openjdk-8-jdk

安装完成后再次执行java -version确认。需要注意的是,Tomcat 9要求JDK 8及以上版本,Tomcat 10则要求JDK 11及以上,版本不匹配会在启动时报错,这一点务必提前确认。

二、下载并安装Tomcat

1. 下载Tomcat压缩包

推荐去Apache Tomcat官网下载tar.gz格式的二进制发行包,也可以直接在服务器上用wget命令下载。以Tomcat 9为例:

cd /usr/local/src
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz

如果服务器无法访问外网,可以先在本地电脑下载好,再用Xftp、FileZilla等工具上传到服务器。

2. 解压并规划目录

下载完成后解压到指定目录,一般约定放在/usr/local下:

tar -zxvf apache-tomcat-9.0.85.tar.gz -C /usr/local/
mv /usr/local/apache-tomcat-9.0.85 /usr/local/tomcat

解压完成后,/usr/local/tomcat目录下会出现bin、conf、logs、webapps等子目录。bin存放启动和关闭脚本,conf是核心配置文件目录,logs存放运行日志,webapps就是部署war包的默认位置。

3. 配置环境变量

编辑/etc/profile文件,在末尾追加Tomcat的环境变量:

vim /etc/profile
# 在文件末尾添加以下内容
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin

保存退出后执行source /etc/profile让配置立即生效。这里CATALINA_HOME是Tomcat的安装根目录,配置到PATH后就可以在任意路径直接执行startup.sh命令了。

三、启动Tomcat并验证安装结果

进入Tomcat的bin目录执行启动脚本:

cd /usr/local/tomcat/bin
./startup.sh

看到终端输出Tomcat started字样,说明脚本执行成功。接下来验证服务是否真正可用,有两种方式:一是查看进程ps -ef | grep tomcat,二是查看端口监听netstat -tulnp | grep 8080。两种方式都能看到结果,基本就可以确认启动成功。

浏览器访问http://服务器IP:8080,如果能看到Tomcat的经典欢迎页面,安装就大功告成了。如果访问不了,先别急着怀疑安装失败,八成是防火墙的问题。CentOS 7使用firewalld,需要放行8080端口:

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

Ubuntu的ufw则执行ufw allow 8080。如果是云服务器(阿里云、腾讯云等),除了系统防火墙,还需要在控制台的安全组规则里放行8080端口,这是新手最容易忽略的一个环节。

四、常用配置调整

1. 修改默认端口

Tomcat默认端口是8080,如果和系统里其他服务冲突,或者想直接用80端口对外服务,可以修改conf目录下的server.xml文件,找到Connector节点:

vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

把port属性改成想要的端口后保存,重启Tomcat即可生效。修改前建议先备份一份server.xml,避免改错后无法回退。

2. 配置开机自启动

直接用startup.sh启动的Tomcat,服务器重启后不会自动运行。推荐配置成systemd服务,新建/etc/systemd/system/tomcat.service文件:

[Unit]
Description=Apache Tomcat
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

然后依次执行systemctl daemon-reload、systemctl enable tomcat、systemctl start tomcat,之后就可以用systemctl统一管理Tomcat的启停了,服务意外挂掉时还能自动拉起。

五、常见问题排查

启动后立即退出:多半是JDK版本不匹配或者JAVA_HOME没配置。查看logs目录下的catalina.out日志文件,一般都能找到具体报错原因。

端口被占用:执行netstat -tulnp | grep 8080看是哪个进程占了端口,要么杀掉占用进程,要么修改Tomcat端口。

shutdown.sh关不掉进程:Tomcat默认通过8005端口发送关闭指令,如果这个端口被禁用,shutdown脚本会失效,此时只能用kill命令强制结束进程。

日志中文乱码:在catalina.sh的开头加上JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"通常可以解决。

总的来说,Linux下的Tomcat安装就是下载解压加环境变量这几步,真正的难点往往在于防火墙、安全组和JDK版本这些环境因素。掌握好日志排查的思路,遇到问题先看catalina.out,大部分报错都能迎刃而解。部署好Tomcat之后,把war包丢进webapps目录重启服务,一个Java Web项目就能对外提供服务了。

Tomcat安装Linux Tomcat配置JDK环境变量修改时间:2026-09-13 19:39:03

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260913/56202.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。