当前位置:首页>Linux>Linux 下安装 Tomcat 8.5 和 JDK 8:从目录扩容到双实例启动

Linux 下安装 Tomcat 8.5 和 JDK 8:从目录扩容到双实例启动

  • 2026-09-09 15:20:46
Linux 下安装 Tomcat 8.5 和 JDK 8:从目录扩容到双实例启动

Linux 下安装 Tomcat 8.5 和 JDK 8:从目录扩容到双实例启动

在 Linux 服务器上部署 Tomcat 时,不能只关注 Tomcat 压缩包本身。实际环境里经常还要先确认安装目录空间是否足够、JDK 路径是否正确、多个 Tomcat 实例的端口是否冲突。

本文以 /app 目录为安装目录,整理一次 Tomcat 8.5.59 与 JDK 8 的部署过程。原现场还涉及 LVM 扩容,所以这里把目录扩容、文件上传、解压、环境变量配置、端口调整和启动验证放在一起说明。

原文发布时间:2020-10-28 16:47:44

原文链接:https://blog.csdn.net/weixin_45833902/article/details/109336998

一、部署前先确认目录空间

先查看服务器磁盘和挂载情况:

df -h

如果 Tomcat 准备安装到 /app,重点关注 /app 对应文件系统的容量和剩余空间。

原环境中 /app 位于 LVM 逻辑卷:

/dev/mapper/VolGroup-app   40G   33M   40G   1%   /app

同时卷组还有剩余空间:

vgs

vgdisplay

lvs

可看到 VolGroup 还有约 69G 空闲空间,因此可以给 /app 扩容。

二、给 /app 逻辑卷扩容

先确认 /app 对应的逻辑卷路径:

lvdisplay | grep app

示例输出:

LV Path                /dev/VolGroup/app

LV Name                app

将卷组剩余 PE 扩展给 /app:

lvextend -l +17665 /dev/VolGroup/app

如果 /app 使用的是 XFS 文件系统,在线扩容使用:

xfs_growfs /dev/VolGroup/app

再次检查容量:

df -h /app

原环境中 /app 从 40G 扩展到了 109G:

/dev/mapper/VolGroup-app   109G   33M   109G   1%   /app

如果 Tomcat 运行用户是 bjtel,还需要确认目录属主:

chown -R bjtel:bjtel /app

三、上传 Tomcat 和 JDK 安装包

将 Tomcat 与 JDK 安装包上传到 /app 目录,例如:

apache-tomcat-8.5.59.zip

jdk-8u271-linux-x64.tar.gz

切换到安装用户后给安装包赋权:

cd /app

chmod 775 apache-tomcat-8.5.59.zip

chmod 775 jdk-8u271-linux-x64.tar.gz

这里的权限不是必须固定为 775,关键是当前安装用户具备读取和解压权限。

四、解压 Tomcat 和 JDK

解压 Tomcat:

unzip apache-tomcat-8.5.59.zip

解压 JDK:

tar -zxvf jdk-8u271-linux-x64.tar.gz

解压后建议确认目录结构:

ls -ld /app/apache-tomcat-8.5.59

ls -ld /app/jdk1.8.0_271

如果要部署两个 Tomcat 实例,可以复制两份目录并用端口区分:

cp -a /app/apache-tomcat-8.5.59 /app/apache-tomcat-8.5.59-8090

cp -a /app/apache-tomcat-8.5.59 /app/apache-tomcat-8.5.59-9090

五、配置 Tomcat 使用指定 JDK

进入 Tomcat 的 bin 目录:

cd /app/apache-tomcat-8.5.59-9090/bin

可以在 setclasspath.sh 或 catalina.sh 中加入 JDK 路径:

vi setclasspath.sh

vi catalina.sh

添加内容示例:

export JAVA_HOME=/app/jdk1.8.0_271

export JRE_HOME=/app/jdk1.8.0_271

如果同一台服务器上有多个 Java 版本,建议显式写入 Tomcat 启动脚本,避免调用到系统默认的错误版本。

六、修改 Tomcat 端口,避免双实例冲突

如果服务器上启动两个 Tomcat 实例,必须修改 server.xml 中的端口,否则第二个实例会因为端口占用启动失败。

编辑配置文件:

vi /app/apache-tomcat-8.5.59-9090/conf/server.xml

常见需要检查的端口包括:

- Server port:默认 8005,用于 shutdown。

- Connector port:默认 8080,用于 HTTP 访问。

- AJP port:默认 8009,如果启用 AJP,也要避免冲突。

例如一个实例使用 8090,另一个实例使用 9090:

<Server port="9005" shutdown="SHUTDOWN">

<Connector port="9090" protocol="HTTP/1.1" />

<Connector port="9009" protocol="AJP/1.3" />

另一个实例则配置为:

<Server port="8005" shutdown="SHUTDOWN">

<Connector port="8090" protocol="HTTP/1.1" />

<Connector port="8009" protocol="AJP/1.3" />

端口具体怎么分配不固定,核心原则是同一台机器上不能重复。

七、清理默认 webapps 目录

如果只保留业务应用,可以进入 Tomcat 的 webapps 目录,删除不需要的默认应用。

常见默认目录包括:

docs

examples

host-manager

manager

ROOT

如果业务应用部署在 ROOT,可以只保留 ROOT。但删除前要确认业务部署方式,避免把后续需要的管理功能或默认页面误删。

八、启动 Tomcat

分别启动两个 Tomcat 实例:

/app/apache-tomcat-8.5.59-9090/bin/startup.sh

/app/apache-tomcat-8.5.59-8090/bin/startup.sh

启动后检查进程:

ps -ef | grep tomcat | grep -v grep

检查端口:

ss -lntp | grep -E '8090|9090'

如果系统没有 ss,也可以使用:

netstat -lntp | grep -E '8090|9090'

再查看启动日志:

tail -f /app/apache-tomcat-8.5.59-9090/logs/catalina.out

看到 Server startup in ... ms 之类的输出,一般说明 Tomcat 已启动完成。

九、常见问题

1. unzip 命令不存在

如果执行解压时报错 unzip: command not found,需要先安装 unzip:

yum install -y unzip

或在支持 DNF 的系统上执行:

dnf install -y unzip

2. 启动时报 JAVA_HOME 找不到

检查 JDK 路径是否正确:

ls -ld /app/jdk1.8.0_271

再检查启动脚本中是否写成了正确的 JAVA_HOME 和 JRE_HOME。

3. 第二个 Tomcat 启动失败

大概率是端口冲突。检查端口占用:

ss -lntp | grep -E '8005|8009|8080|8090|9005|9009|9090'

确保每个 Tomcat 实例的 shutdown、HTTP、AJP 端口都不重复。

4. 启动脚本没有执行权限

如果提示权限不足,可以给脚本增加执行权限:

chmod +x /app/apache-tomcat-8.5.59-9090/bin/*.sh

chmod +x /app/apache-tomcat-8.5.59-8090/bin/*.sh

十、结论

Tomcat 安装看起来只是解压和启动,但在生产环境中至少要确认四件事:

1. /app 等安装目录容量充足。

2. Tomcat 运行用户对安装目录有权限。

3. JAVA_HOME 和 JRE_HOME 指向正确的 JDK。

4. 多个 Tomcat 实例的端口不能冲突。

本次部署流程可以概括为:先扩容 /app,再上传并解压 Tomcat 与 JDK,随后配置 JDK 路径和端口,最后启动 Tomcat 并通过进程、端口和日志进行验证。

最新文章

随机文章