Ubuntu 上 Tomcat 部署问题排查与解决
一 快速定位流程
ps -ef | grep tomcat、netstat -anp | grep 8080 或 lsof -i:8080。若端口未监听,多半未启动或启动失败。java -version、which java 确认已安装 JDK 且版本与 Tomcat 兼容;必要时在用户环境配置 JAVA_HOME。二 常见故障与对应处理
lsof -i:8080 或 netstat -anp | grep 8080;2) 结束进程:kill <PID>;3) 若无法结束或属系统进程,修改 conf/server.xml 中的 Connector port(如改为 8081);4) 重启 Tomcat 并复核监听端口。java -version 确认安装;2) 手动安装 JDK 时,在 ~/.bashrc 与 ~/.profile 中设置 JAVA_HOME、PATH(示例:export JAVA_HOME=/usr/local/jdk/jdk1.8.0_151);3) 使用发行版 OpenJDK 时避免与手动配置冲突;4) 确认 Tomcat 与 JDK 版本匹配。firewall-cmd --zone=public --add-port=8080/tcp --permanent && firewall-cmd --reload)。chmod u+x /path/to/tomcat/bin/*.sh;2) 若报 logs/catalina.out: No such file or directory,手动创建目录:mkdir -p /path/to/tomcat/logs。sudo chown -R tomcat:tomcat /path/to/tomcat;2) 按需设置权限:sudo chmod -R 755 /path/to/tomcat;3) 必要时在 catalina.sh 中设置 umask 0022 以放宽新建日志文件权限。iptables/nftables 将 80→8080)或前置 Nginx/Apache 反向代理来对外提供 80/443。三 标准安装与部署步骤
sudo apt update && sudo apt install tomcat9;2) 检查服务:sudo systemctl status tomcat9;3) 管理命令:sudo systemctl start|stop|restart tomcat9;4) 应用默认目录 /var/lib/tomcat9/webapps,日志 /var/log/tomcat9/。curl -O https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gz && tar -zxvf apache-tomcat-9.0.53.tar.gz -C /opt;2) 配置 JAVA_HOME(在 bin/setenv.sh 或 catalina.sh 中导出);3) 启动:/opt/apache-tomcat-9.0.53/bin/startup.sh;4) 访问测试:http://服务器IP:8080。http://服务器IP:8080/myapp/index.jsp。四 安全与权限建议
tomcat:tomcat,仅对 logs、work、temp、webapps 等目录授予写权限,其他目录只读,遵循最小权限原则。catalina.sh 设置 umask 0022,或将日志文件权限调整为 644;避免过宽权限带来安全风险。