CentOS 上 Tomcat 启动失败 的原因很多,下面按最常见原因 → 排查方法给你一个系统性的排查清单,你可以逐条对照。
# 前台启动,看具体报错
cd /opt/tomcat/bin
./catalina.sh run
或查看日志:
tail -n 200 /opt/tomcat/logs/catalina.out
现象
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
解决
java -version
安装 JDK:
yum install -y java-1.8.0-openjdk-devel
配置环境变量:
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
现象
Address already in use
查看端口
netstat -tunlp | grep 8080
解决
kill -9 PID
或
vi /opt/tomcat/conf/server.xml
改 <Connector port="8080">
现象
Permission denied
解决
chown -R tomcat:tomcat /opt/tomcat
chmod +x /opt/tomcat/bin/*.sh
如果你用 root 启动过,再切普通用户会出权限问题。
现象 Tomcat 启动但无法访问,或启动直接失败
排查
getenforce
临时关闭
setenforce 0
永久关闭
vi /etc/selinux/config
SELINUX=disabled
firewall-cmd --state
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
现象
Parse Fatal Error
解决
现象
Cannot allocate memory
解决 修改:
vi /opt/tomcat/bin/catalina.sh
加:
JAVA_OPTS="-Xms256m -Xmx512m"
现象 Tomcat 启动,但应用报错
排查
ls /opt/tomcat/webapps
可先移走 WAR 再启动测试。
java -version 正常JAVA_HOME 配置正确catalina.out 无报错你可以直接把 catalina.out 报错内容 或 启动命令输出 贴出来,我可以帮你精准定位是哪一条原因。