Alibaba Cloud Linux 3 安装 Tomcat
在阿里云服务器上安装 Tomcat(Java Web 服务器),需要先确保已安装 Java 环境(JDK),以下是详细步骤:
一、安装 Java 环境(JDK)
Tomcat 依赖 Java 运行环境,需先安装 JDK:
Oracle JDK:
安装教程
OpenJDK:
适用于 CentOS/RHEL
# 查看可用JDK版本
sudo yum search java | grep -i jdk# 安装OpenJDK 1.8(推荐,稳定且常用)
sudo yum install java-1.8.0-openjdk-devel -y# 验证安装
java -version
javac -version # 若显示版本信息,说明安装成功
通常路径为:/usr/lib/jvm/java-1.8.0-openjdk
适用于 Ubuntu/Debian
# 查看可用JDK版本
sudo apt search openjdk# 安装OpenJDK 1.8
sudo apt install openjdk-8-jdk -y# 验证安装
java -version
javac -version
通常路径为:/usr/lib/jvm/java-8-openjdk-amd64
二、安装 Tomcat
以 Tomcat 9 为例(最新稳定版可到Tomcat 官网查看):
1. 下载 Tomcat 安装包
# 进入/usr/local目录(推荐安装路径)
cd /usr/local# 下载Tomcat 9(替换为最新版本链接)
sudo wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.111/bin/apache-tomcat-9.0.111.tar.gz
若wget未安装,先执行:
CentOS:sudo yum install wget -y
Ubuntu:sudo apt install wget -y
或者:
手动下载后上传到服务器
2. 解压并重命名
# 解压
sudo tar -zxvf apache-tomcat-9.0.111.tar.gz -C /usr/local/tomcat/# 重命名为tomcat(简化路径)
sudo mv apache-tomcat-9.0.85 tomcat_9.0.85
3. 配置环境变量(可选)
方便快速启动 Tomcat,编辑环境变量文件:
编辑profile文件(在文件末尾添加,注意替换Tomcat路径)
cat >> /etc/profile <<'EOF'
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.111
export PATH=$PATH:$CATALINA_HOME/binEOF
使配置生效
source /etc/profile
三、启动 Tomcat
启动成功
# 进入Tomcat的bin目录
cd /usr/local/tomcat/apache-tomcat-9.0.111/bin# 赋予执行权限
sudo chmod +x *.sh# 启动Tomcat
sudo ./startup.sh
启动成功会显示:Tomcat started.

启动报错
出现 “Neither the JAVA_HOME nor the JRE_HOME” 错误,通常是因为 Tomcat 启动脚本(startup.sh)没有正确识别到系统中配置的 JDK 环境变量。即使你已经配置了环境变量,可能存在以下问题及解决方法:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

方法 1:检查环境变量配置是否正确
首先确认JAVA_HOME是否正确配置并生效:
echo $JAVA_HOME # 确保输出正确的JDK路径
java -version
javac -version
若echo $JAVA_HOME输出为空,说明环境变量未正确配置
方法 2:直接在 Tomcat 启动脚本中指定 JDK 路径
如果系统环境变量没问题,但 Tomcat 仍无法识别,可直接在 Tomcat 的启动脚本中强制指定JAVA_HOME:
- 进入 Tomcat 的bin目录:
cd /usr/local/tomcat/apache-tomcat-9.0.111/bin
- 编辑setenv.sh文件(若不存在则创建):
sudo vi setenv.sh
- 添加以下内容(替换为你的 JDK 路径):
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
- 赋予执行权限:
sudo chmod +x setenv.sh
- 重新启动 Tomcat:
sudo ./startup.sh
方法 3:检查用户权限问题
如果使用sudo启动 Tomcat,可能会导致环境变量失效(sudo默认会重置环境变量)。尝试不使用sudo直接启动(前提是 Tomcat 目录权限足够):
./startup.sh # 去掉sudo
若必须用sudo,可通过-E参数保留当前环境变量:
sudo -E ./startup.sh
四、验证安装
查看 Tomcat 进程
ps -ef | grep tomcat
若有进程信息,说明启动成功。

访问默认页面
- 在本地浏览器输入:http://服务器公网IP:8080
- 若看到 Tomcat 默认欢迎页,说明安装成功。
五、开放安全组端口
Tomcat 默认监听8080 端口,需在阿里云控制台开放:
- 登录 ECS 控制台,进入目标实例的安全组配置
- 添加规则:
- 端口范围:8080/8080
- 授权对象:0.0.0.0/0(按需限制来源)
六、配置 Tomcat 用户(管理界面)
若需使用 Tomcat 的管理界面(如部署 WAR 包),需配置用户权限:
编辑用户配置文件:
sudo vi /usr/local/tomcat/apache-tomcat-9.0.111/conf/tomcat-users.xml
在标签内添加用户(示例):
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="123456" roles="manager-gui,admin-gui"/>
- manager-gui:允许访问/manager(应用管理)
- admin-gui:允许访问/host-manager(主机管理)
解决远程访问限制(默认只允许本地访问):
# 编辑manager配置
sudo vi /usr/local/tomcat/apache-tomcat-9.0.111/webapps/manager/META-INF/context.xml# 注释或删除以下限制IP的配置
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --># 同理修改host-manager配置
sudo vi /usr/local/tomcat/apache-tomcat-9.0.111/webapps/host-manager/META-INF/context.xml
重启 Tomcat 使配置生效:
sudo /usr/local/tomcat/apache-tomcat-9.0.111/bin/shutdown.sh
sudo /usr/local/tomcat/apache-tomcat-9.0.111/bin/startup.sh
七、常用 Tomcat 命令
# 启动
sudo /usr/local/tomcat/apache-tomcat-9.0.111/bin/startup.sh# 停止
sudo /usr/local/tomcat/apache-tomcat-9.0.111/bin/shutdown.sh# 重启(先停止再启动)
sudo /usr/local/tomcat/apache-tomcat-9.0.111/bin/shutdown.sh && sudo /usr/local/tomcat/apache-tomcat-9.0.111/bin/startup.sh# 查看日志(排查错误)
tail -f /usr/local/tomcat/apache-tomcat-9.0.111/logs/catalina.out
八、设置开机自启
1、创建专用用户和用户组
首先在系统中创建tomcat用户和同名用户组(确保其无登录权限,仅用于运行服务):
# 创建tomcat用户组
sudo groupadd -r tomcat# 创建tomcat用户,加入tomcat组,禁止登录(-s /sbin/nologin),并指定家目录(可自定义)
sudo useradd -r -g tomcat -s /sbin/nologin -d /usr/local/tomcat/apache-tomcat-9.0.111 tomcat
- r:创建系统用户(ID 范围在系统预设的系统用户区间)。
- g tomcat:指定用户所属的主组为tomcat。
- s /sbin/nologin:禁止该用户通过终端登录,增强安全性。
- d /usr/local/tomcat:指定用户家目录(建议与 Tomcat 安装目录一致,便于权限管理)。
2、授权 Tomcat 目录权限
将 Tomcat 安装目录的所有者改为tomcat用户和用户组,确保其有足够权限运行服务(读取配置、写入日志等):
# 假设Tomcat安装在/usr/local/tomcat/apache-tomcat-9.0.111
sudo chown -R tomcat:tomcat /usr/local/tomcat/apache-tomcat-9.0.111
- R:递归修改目录下所有文件和子目录的权限。
核心原则
- 最小权限原则:运行服务的用户仅需拥有 Tomcat 运行必需的权限(如读写logs、temp、work目录,读取conf目录,执行bin目录脚本等),无需系统级权限。
- 禁止登录:通过/sbin/nologin禁止用户直接登录系统,避免人为误操作或恶意登录。
CentOS/RHEL
创建系统服务文件
sudo vi /etc/systemd/system/tomcat.service
服务文件内容
# 添加以下内容(注意替换路径和JDK目录)
[Unit]
Description=Tomcat # 服务描述信息,便于识别服务用途
After=network.target # 定义服务启动顺序:在网络服务(network.target)启动后再启动Tomcat[Service]
Type=forking # 服务类型:forking表示服务启动后会创建子进程(Tomcat的startup.sh会后台运行)
Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_201" # 配置JDK环境变量,需替换为实际JDK安装路径
Environment="CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.111" # 配置Tomcat安装目录环境变量,需替换为实际路径
ExecStart=/usr/local/tomcat/apache-tomcat-9.0.111/bin/startup.sh # 启动命令:执行Tomcat的startup.sh脚本
ExecStop=/usr/local/tomcat/apache-tomcat-9.0.111/bin/shutdown.sh # 停止命令:执行Tomcat的shutdown.sh脚本
User=tomcat # 运行Tomcat的用户(生产环境建议使用非root用户,如tomcat,需提前创建)
Group=tomcat # 运行Tomcat的用户组(同上,建议与用户一致)[Install]
WantedBy=multi-user.target # 定义服务的安装目标:表示在多用户模式(系统正常运行模式)下启动该服务
生效并设置开机自启
# 重新加载systemd配置,使新创建的tomcat.service生效
sudo systemctl daemon-reload
# 设置Tomcat开机自启
sudo systemctl enable tomcat

# 立即启动Tomcat服务
sudo systemctl start tomcat
重启Tomcat,查看状态
# 重启Tomcat服务(若已启动)
sudo systemctl restart tomcat# 查看服务状态,确认用户是否生效
sudo systemctl status tomcat
Ubuntu/Debian
步骤同上。完成以上步骤后,Tomcat 即可稳定运行,可通过http://公网IP:8080访问,或部署 WAR 包到/usr/local/tomcat/apache-tomcat-9.0.111/webapps目录运行 Java 应用。
