CentOS 7 安装 Tomcat 全流程详解
在 CentOS 7 服务器上部署 Java Web 应用,Tomcat 是广受欢迎的高性能选择,遵循标准流程进行安装配置,能确保服务稳定可靠运行,以下为详细操作指南:
安装必备环境:Java JDK

Tomcat 运行依赖 Java 环境,推荐安装 OpenJDK:
# 更新系统包 sudo yum update -y # 搜索可用的 OpenJDK 11 包 (推荐稳定版本) sudo yum search openjdk # 安装 OpenJDK 11 开发包 sudo yum install -y java-11-openjdk-devel
验证 Java 安装是否成功:
java -version # 应输出类似:openjdk version "11.0.xx" ...
创建专用系统用户 (增强安全性)
为 Tomcat 创建独立用户,避免使用 root 运行:
sudo groupadd tomcat sudo useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat # 参数说明:-M 不创建家目录,-s 禁止登录,-g 指定组,-d 指定主目录
下载并安装 Tomcat
访问官网获取最新稳定版: 前往 Apache Tomcat 官方网站 (https://tomcat.apache.org),在 "Download" 区域找到 Tomcat 9 或 10 的核心版本 (Binary Distributions -> Core) 的 tar.gz 包链接。

使用 wget 下载到服务器:
# 进入临时目录,替换链接为实际获取的地址 cd /tmp sudo wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.xx/bin/apache-tomcat-9.0.xx.tar.gz
解压并移动到安装目录:
# 解压 sudo tar -xvzf apache-tomcat-9.0.xx.tar.gz # 创建目标目录 sudo mkdir -p /opt/tomcat # 移动并重命名 sudo mv apache-tomcat-9.0.xx /opt/tomcat/latest
设置权限归属:
sudo chown -R tomcat:tomcat /opt/tomcat/latest sudo chmod -R u+x /opt/tomcat/latest/bin # 确保 bin 目录下的脚本有执行权限
配置环境变量 (推荐)
编辑 Tomcat 用户的配置文件,设置 CATALINA_HOME:
sudo vi /opt/tomcat/latest/bin/setenv.sh ```(如文件不存在则创建): ```bash #!/bin/bash export CATALINA_HOME="/opt/tomcat/latest" export CATALINA_PID="$CATALINA_HOME/tomcat.pid" # 可添加其他自定义 JAVA_OPTS 参数
赋予执行权限:

sudo chmod +x /opt/tomcat/latest/bin/setenv.sh sudo chown tomcat:tomcat /opt/tomcat/latest/bin/setenv.sh
配置 Systemd 服务 (实现开机自启与管理)
创建服务单元文件:
sudo vi /etc/systemd/system/tomcat.service
输入以下配置内容:
[Unit] Description=Apache Tomcat Web Application Container After=syslog.target network.target [Service] Type=forking EnvironmentFile=/opt/tomcat/latest/bin/setenv.sh User=tomcat Group=tomcat PIDFile=/opt/tomcat/latest/tomcat.pid ExecStart=/opt/tomcat/latest/bin/startup.sh ExecStop=/opt/tomcat/latest/bin/shutdown.sh Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
重载 systemd 并启动 Tomcat:
sudo systemctl daemon-reload sudo systemctl start tomcat sudo systemctl enable tomcat # 设置开机启动
检查服务状态:
sudo systemctl status tomcat # 应显示 "active (running)"
配置防火墙放行端口
默认情况下,Tomcat 监听 8080 端口:
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp sudo firewall-cmd --reload
验证安装与访问管理界面
访问默认主页: 在浏览器中输入:
http://<你的服务器IP地址>:8080,应看到 Apache Tomcat 欢迎页面。访问管理界面 (可选但需谨慎配置):
- 编辑配置文件启用管理用户:
sudo vi /opt/tomcat/latest/conf/tomcat-users.xml
- 在
<tomcat-users>标签内添加角色和用户 (替换your_username和your_password):<role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="your_username" password="your_strong_password" roles="manager-gui,admin-gui"/>
- 默认出于安全,Manager 和 Host Manager 应用仅允许本地访问,如需远程管理 (生产环境慎用),需修改:
sudo vi /opt/tomcat/latest/webapps/manager/META-INF/context.xml sudo vi /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
注释掉或修改
Valve部分的allow属性,例如允许特定IP或所有IP (allow="^.*$"不推荐)。 - 重启 Tomcat 生效:
sudo systemctl restart tomcat
- 访问
http://<IP>:8080/manager/html或http://<IP>:8080/host-manager/html并使用配置的用户名密码登录。
- 编辑配置文件启用管理用户:
关键安全实践建议
- 禁用未使用组件: 生产环境移除
docs,examples等目录 (/opt/tomcat/latest/webapps/)。 - 强化管理密码: 为
tomcat-users.xml中的用户设置复杂且唯一的密码。 - 最小化访问权限: 严格控制 Manager 和 Host Manager 的远程访问权限,最好通过 VPN 或 SSH 隧道访问。
- 保持更新: 定期关注 Tomcat 和 JDK 的安全公告,及时更新至稳定版本。
- 考虑反向代理: 使用 Nginx 或 Apache HTTPD 作为前端反向代理,处理 SSL 卸载、静态文件、负载均衡等,同时隐藏 Tomcat 版本信息。
遇到问题怎么办?
- 检查日志: 首要查看 Tomcat 日志文件
/opt/tomcat/latest/logs/catalina.out。 - 验证端口: 使用
sudo netstat -tulnp | grep java或sudo ss -tulnp | grep java确认 Tomcat 是否在监听8080端口。 - 检查权限: 确保
/opt/tomcat/latest及其子目录的所有者为tomcat:tomcat且关键脚本有执行权限。 - 检查服务状态:
sudo systemctl status tomcat -l查看详细状态和可能的错误信息。 - 确认防火墙:
sudo firewall-cmd --list-all检查8080/tcp端口是否在放行列表中。
在 CentOS 7 上部署 Tomcat 是 Java 应用上线的关键一步,严格按照标准流程操作并贯彻安全配置原则,能为后续应用稳定运行打下坚实基础,经验表明,前期细致的配置远胜于问题发生后的紧急排查,尤其在权限控制与网络访问策略上,多花十分钟思考限制,往往能避免数小时的故障处理时间。
