1. 查看Tomcat日志(首要步骤)
Tomcat的日志文件是故障排查的核心依据,通常位于$CATALINA_HOME/logs目录下(如/opt/tomcat/logs),主要包含以下关键日志:
tail -f $CATALINA_HOME/logs/catalina.out(按Ctrl+C停止);grep -i "error\|fail\|exception" $CATALINA_HOME/logs/catalina.out(不区分大小写查找错误关键词);sed -n '/2025-09-01/,/2025-09-30/' $CATALINA_HOME/logs/catalina.out > /tmp/tomcat_error.log(将结果保存到临时文件便于分析)。2. 检查Java环境配置
Tomcat依赖Java环境运行,Java配置错误会导致启动失败。
检查项:
java -version(应输出Java版本信息,如openjdk version "1.8.0_392");JAVA_HOME环境变量:echo $JAVA_HOME(应指向JDK安装路径,如/usr/lib/jvm/java-1.8.0-openjdk);~/.bashrc或/etc/profile文件,添加以下内容:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
执行source ~/.bashrc使配置生效。3. 排查端口冲突
Tomcat默认使用8080端口(HTTP)、8005端口(关闭命令)、8009端口(AJP协议),若端口被其他进程占用,会导致启动失败。
检查与解决步骤:
netstat -tulnp | grep ':8080\b'(\b确保匹配完整端口,避免误判如8081端口);1234),终止占用进程:kill -9 1234;$CATALINA_HOME/conf/server.xml文件,找到<Connector port="8080">标签,将8080更改为未被占用的端口(如8081),保存后重启Tomcat。4. 验证Tomcat配置文件语法
Tomcat的配置文件(如server.xml、web.xml)存在语法错误会导致启动失败。
检查方法:
configtest工具:$CATALINA_HOME/bin/catalina.sh configtest;Syntax OK,说明配置文件无语法错误;若提示错误(如org.xml.sax.SAXParseException),根据错误信息定位并修改对应配置文件(如server.xml中<Connector>标签的属性值是否正确)。5. 检查系统资源是否充足
系统资源不足(如内存、磁盘空间)会导致Tomcat无法启动或运行异常。
检查项:
free -m(查看可用内存,若available列接近0,需调整Tomcat内存参数);df -h(查看根分区或Tomcat日志目录所在分区,若Use%超过80%,需清理日志或扩容);rm -rf $CATALINA_HOME/logs/*.log)或使用logrotate工具轮转日志(默认已开启,可通过/etc/logrotate.d/tomcat配置轮转策略)。$CATALINA_HOME/bin/setenv.sh文件(若不存在则创建),添加以下内容(根据服务器内存调整):export JAVA_OPTS="-Xms512m -Xmx1024m -XX:MaxPermSize=256m"
(-Xms:初始堆内存;-Xmx:最大堆内存;-XX:MaxPermSize:永久代内存,适用于Java 8及以下版本)。6. 检查SELinux与防火墙设置
SELinux(安全增强模块)或防火墙阻止Tomcat访问会导致无法启动或无法访问。
SELinux检查与解决:
sestatus(若输出Enforcing,表示启用);setenforce 0;/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=permissive)或调整SELinux策略(如允许Tomcat访问网络):setsebool -P tomcat_can_network_connect 1。防火墙检查与解决:
systemctl status firewalld(若active (running),表示开启);firewall-cmd --zone=public --add-port=8080/tcp --permanent;firewall-cmd --reload;iptables -A INPUT -p tcp --dport 8080 -j ACCEPT,并保存规则(service iptables save)。7. 检查Tomcat用户权限
Tomcat运行用户(通常为tomcat)需对安装目录、日志目录及Web应用目录有读写权限。
权限设置方法:
tomcat用户:chown -R tomcat:tomcat $CATALINA_HOME;tomcat用户可读写执行):chmod -R 755 $CATALINA_HOME;webapps目录下,确保该目录有写入权限(如上传文件功能需要):chmod -R 775 $CATALINA_HOME/webapps。8. 检查应用程序部署问题
若Tomcat能启动但无法访问Web应用,可能是应用部署失败(如WAR包损坏、依赖缺失)。
排查步骤:
localhost.<date>.log日志(位于$CATALINA_HOME/logs目录下),查找应用部署错误(如Deployment failure、ClassNotFoundException);webapps目录:确保WAR包已正确解压(如myapp.war解压为myapp目录);WEB-INF/lib目录下;webapps目录下的应用目录及work目录下的缓存文件(rm -rf $CATALINA_HOME/webapps/myapp*、rm -rf $CATALINA_HOME/work/Catalina/localhost/myapp*),重新部署WAR包。