1. 安装 Java 环境
Tomcat 作为一个 Java Servlet 容器,运行必须依赖 Java 环境。我们推荐安装 OpenJDK,这是 CentOS 官方仓库提供的开源 JDK 实现。
详细安装步骤:
安装 OpenJDK 11 及其开发工具包:
sudo yum install java-11-openjdk-devel -y
验证 Java 安装是否成功:
java -version
预期输出应包含类似"OpenJDK 11.0.x"的信息。
检查 JAVA_HOME 环境变量:
echo $JAVA_HOME
手动设置 JAVA_HOME 的详细步骤:
查找 Java 安装路径:
sudo alternatives --config java
会显示类似这样的信息:
/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64/bin/java
编辑环境配置文件:
sudo vim /etc/profile
在文件末尾添加以下内容(路径需根据实际安装位置调整):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64 export PATH=$PATH:$JAVA_HOME/bin
使配置生效:
source /etc/profile
2. 创建 Tomcat 用户
为安全考虑,建议创建专用的非特权用户运行 Tomcat 服务。
# 创建tomcat用户组
sudo groupadd tomcat
# 创建tomcat用户
# -M:不创建家目录(更安全)
# -s /bin/nologin:禁止shell登录(更安全)
# -g tomcat:指定主组为tomcat
# -d /opt/tomcat:指定工作目录
sudo useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
3. 下载并安装 Tomcat
进入临时目录:
cd /tmp
下载最新的 Tomcat 9 版本(推荐从官方镜像站获取):
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.78/bin/apache-tomcat-9.0.78.tar.gz
(可选)验证下载完整性:
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.78/bin/apache-tomcat-9.0.78.tar.gz.sha512 sha512sum -c apache-tomcat-9.0.78.tar.gz.sha512
解压到安装目录:
sudo mkdir -p /opt/tomcat sudo tar -zxvf apache-tomcat-9.0.78.tar.gz -C /opt/tomcat --strip-components=1
设置目录权限:
sudo chgrp -R tomcat /opt/tomcat sudo chmod -R g+r /opt/tomcat/conf sudo chmod g+x /opt/tomcat/conf sudo chown -R tomcat /opt/tomcat/webapps/ /opt/tomcat/work/ /opt/tomcat/temp/ /opt/tomcat/logs/
4. 创建 systemd 服务文件
使用 systemd 管理 Tomcat 服务可以方便地启动、停止和设置开机自启。
创建服务文件:
sudo vim /etc/systemd/system/tomcat.service
添加以下内容(根据实际情况调整参数):
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
# 环境变量设置
Environment=JAVA_HOME=/usr/lib/jvm/jre-11-openjdk
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
# JVM内存设置(可根据服务器配置调整)
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.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
# 日志配置(可选)
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=tomcat
[Install]
WantedBy=multi-user.target
5. 启动并设置开机自启
重载 systemd 配置:
sudo systemctl daemon-reload
启动 Tomcat 服务:
sudo systemctl start tomcat
设置开机自启:
sudo systemctl enable tomcat
查看服务状态:
sudo systemctl status tomcat
查看日志(用于排查问题):
sudo journalctl -u tomcat --no-pager -n 50
6. 配置防火墙
如果系统启用了防火墙(如 firewalld),需要开放 Tomcat 默认端口。
查看防火墙状态:
sudo firewall-cmd --state
开放8080端口(如果防火墙已启用):
sudo firewall-cmd --permanent --add-port=8080/tcp
重载防火墙配置:
sudo firewall-cmd --reload
查看开放的端口:
sudo firewall-cmd --list-all
7. 验证安装
在浏览器访问服务器 IP 地址及端口(如:http://your_server_ip:8080
),应能看到 Tomcat 默认欢迎页面。
如果看不到页面,可检查以下内容:
- Tomcat 是否正常运行:
sudo systemctl status tomcat
- 防火墙是否阻止了访问
- 服务器是否有安全组限制(如云服务器)
8. 可选配置(管理界面)
8.1 配置管理用户
编辑用户配置文件:
sudo vim /opt/tomcat/conf/tomcat-users.xml
在
<tomcat-users>
标签内添加:<!-- 定义角色 --> <role rolename="manager-gui"/> <role rolename="admin-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <!-- 创建用户并分配角色 --> <user username="admin" password="your_strong_password" roles="manager-gui,admin-gui,manager-script,manager-jmx,manager-status"/>
8.2 配置远程访问权限
默认情况下,管理界面只允许本地访问。如需远程访问:
编辑 manager 应用的 context 文件:
sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml
注释掉以下内容:
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
同样修改 host-manager 的 context 文件:
sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml
8.3 重启服务使配置生效
sudo systemctl restart tomcat
9. 常见问题解决
9.1 如何更改 Tomcat 端口?
编辑 server.xml 文件:
sudo vim /opt/tomcat/conf/server.xml
找到
<Connector port="8080"
部分,修改 port 属性值(如改为 8081)。
9.2 如何部署 Web 应用?
有以下几种方式:
- 直接将 WAR 文件放入
/opt/tomcat/webapps/
目录 - 通过管理界面(
http://your_server_ip:8080/manager
)上传 - 使用 Maven 部署(需要额外配置)
9.3 如何监控 Tomcat 运行状态?
- 通过 JMX 监控
- 使用 Tomcat 自带的管理界面
- 查看日志:
sudo tail -f /opt/tomcat/logs/catalina.out
10. 安全建议
- 定期更新 Tomcat 版本
- 使用强密码管理账户
- 限制管理界面的访问 IP
- 关闭不必要的功能
- 定期检查日志
- 考虑使用 HTTPS 加密通信