当前位置: 首页 > news >正文

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:

  1. 进入 Tomcat 的bin目录:
cd /usr/local/tomcat/apache-tomcat-9.0.111/bin
  1. 编辑setenv.sh文件(若不存在则创建):
sudo vi setenv.sh
  1. 添加以下内容(替换为你的 JDK 路径):
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
  1. 赋予执行权限:
sudo chmod +x setenv.sh
  1. 重新启动 Tomcat:
sudo ./startup.sh
方法 3:检查用户权限问题

如果使用sudo启动 Tomcat,可能会导致环境变量失效(sudo默认会重置环境变量)。尝试不使用sudo直接启动(前提是 Tomcat 目录权限足够):

./startup.sh  # 去掉sudo

若必须用sudo,可通过-E参数保留当前环境变量:

sudo -E ./startup.sh

四、验证安装

查看 Tomcat 进程

ps -ef | grep tomcat

若有进程信息,说明启动成功。
在这里插入图片描述

访问默认页面

  1. 在本地浏览器输入:http://服务器公网IP:8080
  2. 若看到 Tomcat 默认欢迎页,说明安装成功。

五、开放安全组端口

Tomcat 默认监听8080 端口,需在阿里云控制台开放:

  1. 登录 ECS 控制台,进入目标实例的安全组配置
  2. 添加规则:
    • 端口范围: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 应用。

http://www.dtcms.com/a/574472.html

相关文章:

  • 什么自查询?为什么在 RAG 中需要自查询?
  • 做早餐煲汤网站wordpress移动端顶部导航栏
  • 地坪漆东莞网站建设技术支持做淘宝的人就跟做网站一样
  • Vue 用户管理系统(路由相关练习二)
  • 三维建筑非法入侵情景推演
  • 新加坡建设局网站企业网站策划过程
  • 工程师报考网站企业站系统
  • Agent 设计与上下文工程- 03 Workflow 设计模式(下)
  • 硅基计划6.0 JavaEE 壹 多线程及核心内容
  • 网站建设+三乐seo优化系统哪家好
  • 游戏网站建设收费明细自己怎么制作假山
  • 调用模型的两个参数 temperature 和 max_new_tokens 指什么
  • Deepseek在它擅长的AI数据处理领域还有是有低级错误【k折交叉验证中每折样本数计算】
  • 影刀RPA实时监控抖店DSR评分,AI预警异常波动,店铺权重稳如泰山![特殊字符]
  • 用html做的美食网站wordpress 自动空格
  • 网站防护找谁做wordpress创建搜索框
  • 【雷达跟踪滤波例程】3个雷达的三维目标跟踪滤波系统,目标匀速运动,滤波为扩展卡尔曼|雷达观测:斜距、俯仰角、方位角。MATLAB,附下载链接
  • Go红队开发—图形化界面
  • 测开百日计划——Day1
  • 一些工具的使用
  • MATLAB多子种群混沌自适应哈里斯鹰算法优化BP神经网络回归预测
  • 红外体温产品开发踩坑后,我发现谷德 0.05℃精度的红外体温芯片居然自带免费算法?
  • 周口师范做网站好的网站建设网
  • 无锡网站wordpress 3.8.1
  • 巫山做网站哪家强wordpress 升级提示
  • 探索 MCP 生态与边缘智能体部署的家常话
  • 商城网站建设推广手机网站特效代码
  • MIT-0-1背包问题
  • AI+近红外:实现粮食质量快速检测的智能化升级——从单指标到多指标同步预测的技术飞跃
  • 注册电气工程师报考条件网站优化 套站