在CentOS 7上安装Apache Tomcat 8的方法

简介: 在CentOS 7上安装Apache Tomcat 8的方法

介绍

Apache Tomcat 是一个用于提供 Java 应用程序的 Web 服务器和 Servlet 容器。Tomcat 是由 Apache 软件基金会发布的 Java Servlet 和 JavaServer Pages 技术的开源实现。本教程涵盖了在 CentOS 7 服务器上安装和配置最新版本的 Tomcat 8 的基本步骤。

先决条件

在开始本指南之前,您应该在服务器上设置一个单独的非根用户帐户。您可以通过完成 CentOS 7 的初始服务器设置中的步骤 1-3 来学习如何做到这一点。我们将在本教程的其余部分中使用在此处创建的 demo 用户。

安装 Java

Tomcat 要求在服务器上安装 Java,以便执行任何 Java Web 应用程序代码。让我们通过使用 yum 安装 OpenJDK 7 来满足这一要求。

要使用 yum 安装 OpenJDK 7 JDK,请运行以下命令:

sudo yum install java-1.7.0-openjdk-devel

在提示时输入 y 继续安装 OpenJDK 7。

请注意,我们稍后需要配置 Tomcat 的 JAVA_HOME 目录的快捷方式可以在 /usr/lib/jvm/jre 找到。

现在 Java 已安装完成,让我们创建一个 tomcat 用户,该用户将用于运行 Tomcat 服务。

创建 Tomcat 用户

出于安全考虑,Tomcat 应该作为一个非特权用户(即非 root 用户)来运行。我们将创建一个新用户和组来运行 Tomcat 服务。

首先,创建一个新的 tomcat 组:

sudo groupadd tomcat

然后创建一个新的 tomcat 用户。我们将使该用户成为 tomcat 组的成员,其主目录为 /opt/tomcat(我们将在其中安装 Tomcat),并且其 shell 为 /bin/false(这样就没有人可以登录到该帐户):

sudo useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

现在我们的 tomcat 用户已设置好,让我们下载并安装 Tomcat。

安装 Tomcat

目前安装 Tomcat 8 最简单的方法是下载最新的二进制发行版,然后手动配置它。

下载 Tomcat 二进制文件

在 Tomcat 8 下载页面找到最新版本的 Tomcat 8。在撰写本文时,最新版本是 8.5.37。在 Binary Distributions 部分下的 Core 列表中,复制 “tar.gz” 的链接。

使用 wget 将最新的二进制发行版下载到您的主目录:

首先,使用 yum 包管理器安装 wget

sudo yum install wget

然后,切换到您的主目录:

cd ~

现在,使用 wget 并粘贴链接来下载 Tomcat 8 存档,如下所示(您的镜像链接可能与示例不同):

wget https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz

我们将安装 Tomcat 到 /opt/tomcat 目录。使用以下命令创建该目录,然后将存档解压到其中:

sudo mkdir /opt/tomcat
sudo tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1

现在我们已准备好设置适当的用户权限。

更新权限

我们设置的 tomcat 用户需要对 Tomcat 安装具有适当的访问权限。我们现在来设置这些权限。

切换到 Tomcat 安装路径:

cd /opt/tomcat

将整个安装目录的所有权交给 tomcat 组:

sudo chgrp -R tomcat /opt/tomcat

接下来,给 tomcat 组对 conf 目录及其所有内容的读取权限,并对目录本身给予执行权限:

sudo chmod -R g+r conf
sudo chmod g+x conf

然后将 webappsworktemplogs 目录的所有权交给 tomcat 用户:

sudo chown -R tomcat webapps/ work/ temp/ logs/

现在适当的权限已设置好,让我们设置一个 Systemd 单元文件。

安装 Systemd 单元文件

因为我们希望能够将 Tomcat 作为服务运行,我们将设置一个 Tomcat Systemd 单元文件。

通过运行以下命令创建并打开该单元文件:

sudo vi /etc/systemd/system/tomcat.service

粘贴以下脚本。您可能还希望修改 CATALINA_OPTS 中指定的内存分配设置:

# 用于 Tomcat 的 Systemd 单元文件
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target

保存并退出。此脚本告诉服务器以指定的设置作为 tomcat 用户运行 Tomcat 服务。

现在重新加载 Systemd 以加载 Tomcat 单元文件:

sudo systemctl daemon-reload

现在您可以使用以下 systemctl 命令启动 Tomcat 服务:

sudo systemctl start tomcat

通过输入以下命令检查服务是否成功启动:

sudo systemctl status tomcat

如果要启用 Tomcat 服务,使其在服务器启动时启动,请运行以下命令:

sudo systemctl enable tomcat

Tomcat 还没有完全设置好,但您可以通过在 Web 浏览器中输入您的域名或 IP 地址后跟 :8080 来访问默认的启动页面:

[secondary_label 在 Web 浏览器中打开:]
http://server_IP_address:8080

您将看到默认的 Tomcat 启动页面,以及其他信息。现在我们将深入了解 Tomcat 的安装。

配置 Tomcat Web 管理界面

为了使用 Tomcat 自带的管理 Web 应用程序,我们必须向我们的 Tomcat 服务器添加登录。我们将通过编辑 tomcat-users.xml 文件来实现这一点:

sudo vi /opt/tomcat/conf/tomcat-users.xml

该文件中充满了描述如何配置文件的注释。您可能希望删除以下两行之间的所有注释,或者如果您想引用示例,可以将它们保留下来:

<tomcat-users>
...
</tomcat-users>

您将希望添加一个可以访问 manager-guiadmin-gui(Tomcat 自带的 Web 应用程序)的用户。您可以通过定义类似下面示例的用户来实现。确保将用户名和密码更改为安全的内容:

<tomcat-users>
    <user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>

保存并退出 tomcat-users.xml 文件。

默认情况下,较新版本的 Tomcat 限制对 Manager 和 Host Manager 应用程序的访问仅限于来自服务器本身的连接。由于我们正在远程安装,您可能希望删除或更改此限制。要更改这些应用程序的 IP 地址限制,请打开相应的 context.xml 文件。

对于 Manager 应用程序,输入:

sudo vi /opt/tomcat/webapps/manager/META-INF/context.xml

对于 Host Manager 应用程序,输入:

sudo vi /opt/tomcat/webapps/host-manager/META-INF/context.xml

在内部,注释掉 IP 地址限制以允许来自任何地方的连接。或者,如果您只想允许来自您自己 IP 地址的连接,您可以将您的公共 IP 地址添加到列表中:

<Context antiResourceLocking="false" privileged="true" >
  <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>

完成后保存并关闭文件。

要使我们的更改生效,请重新启动 Tomcat 服务:

sudo systemctl restart tomcat

访问 Web 界面

现在 Tomcat 已经运行起来了,让我们在 Web 浏览器中访问 Web 管理界面。您可以通过访问服务器的公共 IP 地址,端口为 8080 来实现:

[secondary_label 在 Web 浏览器中打开:]
http://server_IP_address:8080

您将看到类似以下图像:

!Tomcat root

如您所见,有链接到我们为管理员用户配置的管理 Web 应用程序。

让我们来看看 Manager 应用程序,可通过链接或 http://server_IP_address:8080/manager/html 访问:

!Tomcat Web Application Manager

Web 应用程序管理器用于管理您的 Java 应用程序。您可以在这里启动、停止、重新加载、部署和取消部署。您还可以对应用程序运行一些诊断(例如查找内存泄漏)。最后,此页面底部提供有关服务器的信息。

现在让我们看看 Host Manager,可通过链接或 http://server_IP_address:8080/host-manager/html/ 访问:

!Tomcat Virtual Host Manager

从虚拟主机管理器页面,您可以添加虚拟主机以提供您的应用程序。

结论

您已经完成了Tomcat的安装!现在您可以自由地部署自己的Java Web应用程序了!


目录
相关文章
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
1082 1
|
Ubuntu 网络安全 Apache
Ubuntu下安装Apache2.4.7遇到的问题及解决办法
Ubuntu下安装Apache2.4.7遇到的问题及解决办法
386 2
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
362 1
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
Ubuntu 关系型数据库 MySQL
在 Ubuntu 14.04 服务器上使用 Apache 安装 Drupal 的方法
在 Ubuntu 14.04 服务器上使用 Apache 安装 Drupal 的方法
268 0
|
9月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
1519 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
700 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
11月前
|
SQL 人工智能 数据挖掘
Apache Flink:从实时数据分析到实时AI
Apache Flink 是实时数据处理领域的核心技术,历经十年发展,已从学术项目成长为实时计算的事实标准。它在现代数据架构中发挥着关键作用,支持实时数据分析、湖仓集成及实时 AI 应用。随着 Flink 2.0 的发布,其在流式湖仓、AI 驱动决策等方面展现出强大潜力,正推动企业迈向智能化、实时化的新阶段。
1254 9
Apache Flink:从实时数据分析到实时AI
|
11月前
|
SQL 人工智能 API
Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
Apache Flink 2.1.0 正式发布,标志着实时数据处理引擎向统一 Data + AI 平台迈进。新版本强化了实时 AI 能力,支持通过 Flink SQL 和 Table API 创建及调用 AI 模型,新增 Model DDL、ML_PREDICT 表值函数等功能,实现端到端的实时 AI 工作流。同时增强了 Flink SQL 的流处理能力,引入 Process Table Functions(PTFs)、Variant 数据类型,优化流式 Join 及状态管理,显著提升作业稳定性与资源利用率。
975 0
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
1328 33
The Past, Present and Future of Apache Flink

热门文章

最新文章