温馨提示×

centos为啥启动不了tomcat

小樊
50
2026-10-11 20:28:09
栏目: 智能运维

CentOS 启动不了 Tomcat 的原因有很多,下面我按最常见原因 → 排查方法给你梳理一下,你可以对照看是哪一种。


一、Java 环境没装或没配置好(最常见)

Tomcat 必须依赖 JDK/JRE。

检查:

java -version

如果提示 command not found,说明没装 Java。

解决:

yum install java-1.8.0-openjdk-devel -y

然后确认:

which java
echo $JAVA_HOME

Tomcat 建议设置 JAVA_HOME:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

二、端口被占用(尤其是 8080)

检查:

netstat -tunlp | grep 8080
# 或
ss -tunlp | grep 8080

解决:

  • 杀掉占用进程
  • 或修改 conf/server.xml 里的端口

三、防火墙 / SELinux 拦截

CentOS 默认防火墙可能挡住 8080。

防火墙:

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

SELinux(测试用):

setenforce 0

如果这样能启动,说明是 SELinux 问题。


四、Tomcat 没执行权限

cd /opt/tomcat/bin
chmod +x *.sh

启动:

./startup.sh

五、启动脚本报错(看日志)

看日志:

tail -f /opt/tomcat/logs/catalina.out

(路径按你的 Tomcat 实际位置)

常见错误:

  • JAVA_HOME 不对
  • server.xml 配置错误
  • 项目里代码报错导致启动失败

六、用 systemctl 启动失败

如果你是:

systemctl start tomcat

但失败,看:

systemctl status tomcat
journalctl -xe

多半是:

  • service 文件写错
  • 用户权限不对(不要用 root 跑 Tomcat 最好)

七、CentOS 版本相关问题

  • CentOS 7:用 systemctl
  • CentOS 6:用 service tomcat start
  • CentOS 8(已停更):注意仓库问题

快速自检清单 ✅

java -version
echo $JAVA_HOME
netstat -tunlp | grep 8080
ls -l /opt/tomcat/bin/*.sh
tail -n 50 /opt/tomcat/logs/catalina.out

如果你愿意,可以把 报错信息或 catalina.out 的日志贴出来,我可以直接帮你定位具体原因。

0 踩