直接使用 startup.sh (最直接,但不推荐用于生产环境)
这是最简单直接的方法,直接进入 Tomcat 的 bin 目录,执行启动脚本。

确保你已经安装了 Java
Tomcat 是一个 Java 应用,必须先安装 Java 运行环境,你可以使用 java -version 命令检查。
java -version
如果系统提示 command not found,说明 Java 未安装,你需要先安装它,在 CentOS/RHEL 系统上:
# 安装 OpenJDK (推荐) sudo yum install java-11-openjdk-devel # 或者安装 OpenJDK 8 # sudo yum install java-1.8.0-openjdk-devel
在 Ubuntu/Debian 系统上:

# 安装 OpenJDK (推荐) sudo apt update sudo apt install openjdk-11-jdk # 或者安装 OpenJDK 8 # sudo apt install openjdk-8-jdk
找到 Tomcat 的安装目录
Tomcat 会被解压到 /opt、/usr/local 或你的家目录下,假设你的 Tomcat 安装在 /opt/apache-tomcat-9.0.65 (请替换成你自己的路径)。
进入 Tomcat 的 bin 目录
cd /opt/apache-tomcat-9.0.65/bin
给 startup.sh 赋予执行权限

如果是新下载的 Tomcat,可能需要手动赋予执行权限。
chmod +x startup.sh
启动 Tomcat
执行启动脚本:
./startup.sh
检查启动状态
执行后,你会看到类似 "Server startup in XXX ms" 的信息,这表示 Tomcat 已经成功启动。
你可以通过以下几种方式进一步验证:
-
查看日志: Tomcat 的启动日志会输出到
logs/catalina.out文件,你可以用tail命令实时查看:tail -f /opt/apache-tomcat-9.0.65/logs/catalina.out
-
检查端口: Tomcat 默认监听
8080端口,你可以用netstat或ss命令检查该端口是否被监听:# 使用 netstat netstat -tuln | grep 8080 # 使用 ss (更现代的命令) ss -tuln | grep 8080
-
浏览器访问: 在浏览器中输入
http://<你的服务器IP>:8080,如果能看到 Tomcat 的欢迎页面,说明启动成功。
使用 systemd 服务 (推荐,用于生产环境)
在生产环境中,我们更希望将 Tomcat 作为一项系统服务来运行,这样可以实现开机自启、方便管理(start, stop, restart, status)以及更好地处理进程。
创建 systemd 服务文件
使用 vi 或 nano 编辑器创建一个新的服务文件,tomcat.service。
sudo vi /etc/systemd/system/tomcat.service
粘贴到文件中。请务必根据你的实际情况修改 JAVA_HOME, CATALINA_HOME 和 CATALINA_PID 的路径。
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking # 修改为你自己的 Java 安装路径 Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" # 修改为你自己的 Tomcat 安装路径 Environment="CATALINA_HOME=/opt/apache-tomcat-9.0.65" # 修改为你自己的 Tomcat 安装路径 Environment="CATALINA_BASE=/opt/apache-tomcat-9.0.65" # Tomcat PID 文件路径 Environment="CATALINA_PID=$CATALINA_HOME/temp/tomcat.pid" # Tomcat 启动和停止命令 ExecStart=$CATALINA_HOME/bin/startup.sh ExecStop=$CATALINA_HOME/bin/shutdown.sh # 用户和组,建议使用非 root 用户运行 Tomcat,这里用 'tomcat' 作为示例 # 你需要先创建这个用户: sudo useradd -r -s /bin/false tomcat User=tomcat Group=tomcat # 确保服务能正确关闭 KillMode=none RemainAfterExit=yes [Install] WantedBy=multi-user.target
重要说明:
JAVA_HOME: 运行readlink -f $(which java)可以找到 Java 的真实路径,然后取其父目录,如果java在/usr/bin/java,链接到/etc/alternatives/java,最终指向/usr/lib/jvm/java-11-openjdk-amd64/bin/java,JAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64。CATALINA_HOME: 你的 Tomcat 安装根目录。User和Group: 强烈建议不要用root用户运行 Tomcat,你可以先创建一个专用用户:sudo useradd -r -s /bin/false tomcat sudo chown -R tomcat:tomcat /opt/apache-tomcat-9.0.65
重新加载 systemd 配置
创建或修改服务文件后,需要让 systemd 重新加载配置。
sudo systemctl daemon-reload
启动 Tomcat 服务
现在你可以使用 systemctl 命令来管理 Tomcat 服务了。
# 启动 Tomcat sudo systemctl start tomcat # 查看服务状态 sudo systemctl status tomcat
如果看到绿色的 active (running),说明启动成功。
设置开机自启
如果你希望 Tomcat 在服务器重启后自动启动,请执行:
sudo systemctl enable tomcat
常用管理命令
# 停止服务 sudo systemctl stop tomcat # 重启服务 sudo systemctl restart tomcat # 查看服务状态 sudo systemctl status tomcat # 禁用开机自启 sudo systemctl disable tomcat
常见问题与解决方案
问题1:启动失败,提示权限被拒绝 (Permission denied)
- 原因: 你可能使用了
root用户,或者tomcat用户没有权限访问 Tomcat 目录下的文件。 - 解决方案:
- 确保你使用的用户有执行
startup.sh的权限。 - 如果你创建了
tomcat用户,请确保该用户拥有 Tomcat 目录的所有权:sudo chown -R tomcat:tomcat /opt/apache-tomcat-9.0.65
- 确保你使用的用户有执行
问题2:启动失败,提示端口 8080 被占用
- 原因: 可能已经有其他程序在使用 8080 端口。
- 解决方案:
- 查看哪个进程占用了 8080 端口:
sudo lsof -i :8080 # 或者 sudo netstat -tulpn | grep 8080
- 如果是 Tomcat 自己的旧进程,直接杀掉它:
sudo kill -9 <PID>
- 如果是其他程序,你需要停止它或修改 Tomcat 的端口配置(在
conf/server.xml文件中修改<Connector port="8080" ...>)。
- 查看哪个进程占用了 8080 端口:
问题3:启动失败,日志提示 JAVA_HOME is not set correctly
- 原因: Tomcat 找不到 Java 的安装路径。
- 解决方案:
- 确保
JAVA_HOME环境变量设置正确,你可以通过echo $JAVA_HOME检查。 - 如果未设置,可以临时设置:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
然后再执行
./startup.sh。 - 如果要永久设置,可以修改
~/.bashrc或/etc/profile文件,source文件使其生效。
- 确保
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
startup.sh |
简单、快速,无需配置 | 无法作为服务管理,不便于开机自启和进程管理 | 开发测试、 |
