一、离线安装配置 Tomcat
1. 前提准备(核心依赖 JDK)
下载文件:
JDK 8+ 压缩包(如 jdk-8u391-linux-x64.tar.gz,Oracle 官网下载)
Tomcat 压缩包(官网 tomcat.apache.org,如 apache-tomcat-9.0.85.tar.gz)
依赖 deb 包(匹配 Ubuntu 版本:openjdk-8-jdk(可选,或用手动 JDK)、libc6-dev(编译依赖))
上传路径:将所有文件传到服务器 /opt/tomcat-offline 目录
2. 安装 JDK(离线手动配置)
解压 JDK 到指定目录:
sudo mkdir -p /usr/local/java
sudo tar -zxvf /opt/tomcat-offline/jdk-8u391-linux-x64.tar.gz -C /usr/local/java/
配置环境变量:
sudo vim /etc/profile
# 末尾添加以下内容(替换 JDK 实际目录名)
export JAVA_HOME=/usr/local/java/jdk1.8.0_391
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 生效配置
source /etc/profile
验证 JDK:java -version(显示版本即成功)
3. 安装 Tomcat(解压部署,Ubuntu 推荐方式)
解压 Tomcat 到安装目录:
sudo mkdir -p /usr/local/tomcat
sudo tar -zxvf /opt/tomcat-offline/apache-tomcat-9.0.85.tar.gz -C /usr/local/tomcat/
配置权限(避免启动报错,创建专用用户):
sudo useradd -m tomcat # 新建 tomcat 用户
sudo chown -R tomcat:tomcat /usr/local/tomcat/ # 赋予目录权限
sudo chmod +x /usr/local/tomcat/apache-tomcat-9.0.85/bin/*.sh # 脚本执行权限
配置环境变量(可选,方便命令调用):
sudo vim /etc/profile
# 末尾添加
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.85
export PATH=$PATH:$CATALINA_HOME/bin
# 生效
source /etc/profile
验证安装:
su - tomcat # 切换到 tomcat 用户
$CATALINA_HOME/bin/version.sh # 显示 Tomcat 版本即成功
二、Tomcat 目录及文件说明(默认路径:/usr/local/tomcat/apache-tomcat-9.0.85)
bin/:核心脚本目录(需执行权限)
startup.sh:启动脚本(调用 catalina.sh start)
shutdown.sh:停止脚本(调用 catalina.sh stop)
catalina.sh:核心控制脚本(支持 start/stop/restart/status)
version.sh:查看版本脚本
conf/:配置文件目录
server.xml:主配置文件(端口、连接器、线程池等)
web.xml:全局 Web 应用配置(欢迎页、MIME 类型)
context.xml:全局上下文配置(数据源、资源链接)
tomcat-users.xml:用户权限配置(管理界面登录)
webapps/:应用部署目录(核心目录)
ROOT:默认应用(访问 http://IP:8080 加载)
manager:管理应用(部署 / 卸载应用,需配置权限)
host-manager:虚拟主机管理应用
work/:JSP 编译目录(存放编译后的 .class 文件,可删除重建)
temp/:临时文件目录(上传文件、运行缓存,可定期清理)
logs/:日志目录
catalina.out:核心日志(启动 / 运行 / 错误信息)
localhost.log:本地虚拟主机日志
localhost_access_log.*.txt:访问日志(IP、请求路径、响应码)
lib/:依赖库目录(Tomcat 核心 Jar 包,如 servlet-api.jar)
三、Tomcat 常用功能(Ubuntu 离线适配)
1. 部署 Web 应用(离线核心需求)
自动部署(推荐新手):
将 WAR 包(如 myapp.war)上传到 $CATALINA_HOME/webapps 目录
启动 Tomcat 后,WAR 包自动解压为同名文件夹(如 myapp)
访问路径:http:// 服务器 IP:8080/myapp
手动部署(通过 Manager 应用):
配置权限:编辑 $CATALINA_HOME/conf/tomcat-users.xml,添加:
<user username="admin" password="Tomcat@123" roles="manager-gui,admin-gui"/>
注释 IP 限制(开发环境):编辑 $CATALINA_HOME/webapps/manager/META-INF/context.xml,注释掉:
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+"/> -->
重启 Tomcat,访问 http://IP:8080/manager,上传 WAR 包部署
2. 端口修改(避免冲突)
编辑 $CATALINA_HOME/conf/server.xml,找到 HTTP 连接器:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
将 port 改为 8081 等未占用端口,保存后重启 Tomcat 生效
3. 内存配置(避免溢出,离线必配)
编辑 $CATALINA_HOME/bin/catalina.sh,开头添加 JVM 参数:
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"
Xms:初始堆内存,Xmx:最大堆内存(根据服务器内存调整)
4. 虚拟主机配置(多应用部署)
编辑 $CATALINA_HOME/conf/server.xml,在 <Engine> 标签内添加:
<Host name="app1.local" appBase="webapps/app1" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="." reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="app1_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b"/>
</Host>
本地 hosts 配置(离线环境):在服务器 /etc/hosts 添加 127.0.0.1 app1.local,重启 Tomcat 即可通过域名访问
四、Tomcat 常用命令(Ubuntu 离线专用)
1. 服务管理(需切换 tomcat 用户:su - tomcat)
启动:
后台启动:$CATALINA_HOME/bin/startup.sh 或 catalina.sh start
前台启动(调试):$CATALINA_HOME/bin/catalina.sh run(日志实时输出)
停止:
正常停止:$CATALINA_HOME/bin/shutdown.sh 或 catalina.sh stop
强制停止:ps -ef | grep tomcat | grep -v grep | awk '{print $2}' | xargs kill -9
重启:$CATALINA_HOME/bin/catalina.sh restart 或 shutdown.sh && startup.sh
查看状态:$CATALINA_HOME/bin/catalina.sh status
2. 状态与信息查看
查看进程:ps -ef | grep tomcat | grep -v grep(显示主进程 + 子进程)
查看版本:$CATALINA_HOME/bin/version.sh
查看端口占用:sudo netstat -tuln | grep 8080(替换为实际端口)
3. 日志与缓存操作
实时查看核心日志:tail -f $CATALINA_HOME/logs/catalina.out(按 Ctrl+C 退出)
查看最近错误日志:tail -n 100 $CATALINA_HOME/logs/catalina.out | grep "ERROR"
清理缓存:rm -rf $CATALINA_HOME/work/* $CATALINA_HOME/temp/*(需先停止 Tomcat)
五、注意事项
权限:所有操作优先使用 tomcat 用户,避免 root 权限启动(安全 + 避免权限报错)
防火墙:Ubuntu 离线需开放 8080 端口:sudo ufw allow 8080/tcp && sudo ufw reload
自启配置:添加系统服务实现开机自启:
sudo vim /usr/lib/systemd/system/tomcat.service
# 添加以下内容
[Unit]
Description=Apache Tomcat 9
After=network.target
[Service]
User=tomcat
Group=tomcat
Environment="CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.85"
ExecStart=$CATALINA_HOME/bin/startup.sh
ExecStop=$CATALINA_HOME/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
# 生效命令
sudo systemctl daemon-reload && sudo systemctl enable tomcat
离线排查:启动失败优先查看 catalina.out 日志,常见问题:JDK 未配置、端口占用、权限不足
发表评论