如何在 Ubuntu 18.04 上安装 Apache Tomcat 9如何在 Ubuntu 18.04 上安装 Apache Tomcat 9如何在 Ubuntu 18.04 上安装 Apache Tomcat 9如何在 Ubuntu 18.04 上安装 Apache Tomcat 9
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 18.04 上安装 Apache Tomcat 9

介绍

Apache Tomcat 是一个 Web 服务器和 servlet 容器,用于为 Java 应用程序提供服务。 Tomcat 是 Java Servlet 和 JavaServer Pages 技术的开源实现,由 Apache 软件基金会发布。本教程涵盖了 Ubuntu 18.04 服务器上最新版本 Tomcat 9 的基本安装和一些配置。

先决条件

在开始本指南之前,您应该在服务器上设置一个具有 sudo 权限的非根用户。您可以通过完成我们的 Ubuntu 18.04 初始服务器设置指南来了解如何执行此操作。

第 1 步 — 安装 Java

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

首先,更新你的 apt 包索引:

  1. sudo apt update

然后用 apt 安装 Java Development Kit 包:

  1. sudo apt install default-jdk

现在已经安装了 Java,我们可以创建一个 tomcat 用户,该用户将用于运行 Tomcat 服务。

第 2 步 — 创建 Tomcat 用户

为了安全起见,Tomcat 应该以非特权用户(即非 root)身份运行。我们将创建一个新的用户和组来运行 Tomcat 服务。

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

  1. sudo groupadd tomcat

接下来,创建一个新的 tomcat 用户。我们将使该用户成为 tomcat 组的成员,主目录为 /opt/tomcat(我们将在其中安装 Tomcat),shell 为 /bin/false(所以没有人可以登录该帐户):

  1. sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

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

第 3 步 — 安装 Tomcat

安装 Tomcat 9 的最佳方法是下载最新的二进制版本,然后手动配置它。

在 Tomcat 9 下载页面找到最新版本的 Tomcat 9。在撰写本文时,最新版本是 9.0.10,但如果可用,您应该使用更新的稳定版本。在 Binary Distributions 部分下,然后在 Core list 下,将链接复制到 \tar.gz。在大多数浏览器中,您可以通过右键单击该链接并选择 Copy Link Address 或类似选项来执行此操作。

接下来,切换到服务器上的 /tmp 目录。这是下载临时项目的好目录,如 Tomcat tarball,在提取 Tomcat 内容后我们将不需要它:

  1. cd /tmp

使用 curl 下载您从 Tomcat 网站复制的链接:

  1. curl -O paste_the_copied_link_here

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

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

接下来,我们可以为我们的安装设置适当的用户权限。

第 4 步 — 更新权限

我们设置的 tomcat 用户需要能够访问 Tomcat 安装。我们现在就设置它。

切换到我们解压 Tomcat 安装的目录:

  1. cd /opt/tomcat

赋予 tomcat 组对整个安装目录的所有权:

  1. sudo chgrp -R tomcat /opt/tomcat

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

  1. sudo chmod -R g+r conf
  2. sudo chmod g+x conf

使 tomcat 用户成为 webapps、work、temp 和 logs 的所有者> 目录:

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

现在设置了适当的权限,我们可以创建一个 systemd 服务文件来管理 Tomcat 进程。

第 5 步 — 创建 systemd 服务文件

我们希望能够将 Tomcat 作为服务运行,因此我们将设置 systemd 服务文件。

Tomcat 需要知道 Java 的安装位置。此路径通常称为 \JAVA_HOME。查找该位置的最简单方法是运行以下命令:

  1. sudo update-java-alternatives -l
Output
java-1.11.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.11.0-openjdk-amd64

您的 JAVA_HOME 是最后一列的输出(以红色突出显示)。鉴于上面的示例,此服务器的正确 JAVA_HOME 将是:

JAVA_HOME
/usr/lib/jvm/java-1.11.0-openjdk-amd64

您的 JAVA_HOME 可能不同。

有了这条信息,我们就可以创建systemd服务文件了。通过键入以下命令在 /etc/systemd/system 目录中打开名为 tomcat.service 的文件:

  1. sudo nano /etc/systemd/system/tomcat.service

将以下内容粘贴到您的服务文件中。如有必要,修改 JAVA_HOME 的值以匹配您在系统上找到的值。您可能还想修改 CATALINA_OPTS 中指定的内存分配设置:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
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=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

完成后,保存并关闭文件。

接下来,重新加载 systemd 守护进程,以便它知道我们的服务文件:

  1. sudo systemctl daemon-reload

键入以下命令启动 Tomcat 服务:

  1. sudo systemctl start tomcat

通过键入以下内容仔细检查它是否正确启动:

  1. sudo systemctl status tomcat

第 6 步 — 调整防火墙并测试 Tomcat 服务器

现在 Tomcat 服务已启动,我们可以测试以确保默认页面可用。

在此之前,我们需要调整防火墙以允许我们的请求到达服务。如果您遵循先决条件,您当前将启用 ufw 防火墙。

Tomcat 使用端口8080 来接受常规请求。通过键入以下内容允许到该端口的流量:

  1. sudo ufw allow 8080

修改防火墙后,您可以通过在网络浏览器中转到您的域或 IP 地址后跟 :8080 来访问默认启动页面:

Open in web browser
http://server_domain_or_IP:8080

您将看到默认的 Tomcat 启动页面,以及其他信息。但是,例如,如果您单击 Manager App 的链接,您将被拒绝访问。接下来我们可以配置该访问权限。

如果您能够成功访问 Tomcat,现在是启用服务文件的好时机,以便 Tomcat 在引导时自动启动:

  1. sudo systemctl enable tomcat

第 7 步 — 配置 Tomcat Web 管理界面

为了使用 Tomcat 附带的管理器 Web 应用程序,我们必须向我们的 Tomcat 服务器添加一个登录名。我们将通过编辑 tomcat-users.xml 文件来完成此操作:

  1. sudo nano /opt/tomcat/conf/tomcat-users.xml

您需要添加一个可以访问 manager-gui 和 admin-gui(Tomcat 附带的 Web 应用程序)的用户。您可以通过在 tomcat-users 标记之间定义一个用户来完成此操作,类似于下面的示例。请务必将用户名和密码更改为安全的内容:

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

完成后保存并关闭文件。

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

对于 Manager 应用程序,键入:

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

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

  1. sudo nano /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 服务:

  1. sudo systemctl restart tomcat

第 8 步 - 访问 Web 界面

现在我们已经创建了一个用户,我们可以在网络浏览器中再次访问网络管理界面。再一次,您可以通过在浏览器中的端口 8080 上输入服务器的域名或 IP 地址来访问正确的界面:

Open in web browser
http://server_domain_or_IP:8080

您看到的页面应该与您之前测试时看到的页面相同:

让我们看一下 Manager 应用程序,可通过链接或 http://server_domain_or_IP:8080/manager/html 访问。您将需要输入您添加到 tomcat-users.xml 文件的帐户凭据。之后,您应该会看到一个如下所示的页面:

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

现在让我们看一下主机管理器,可通过链接或 http://server_domain_or_IP:8080/host-manager/html/ 访问:

在 Virtual Host Manager 页面中,您可以添加虚拟主机来为您的应用程序提供服务。

结论

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

目前,您的 Tomcat 安装可以正常运行,但完全未加密。这意味着所有数据,包括密码等敏感项目,都以纯文本形式发送,互联网上的其他方可以拦截和读取这些数据。为了防止这种情况发生,强烈建议您使用 SSL 加密您的连接。您可以按照本指南了解如何加密与 Tomcat 的连接(注意:本指南涵盖 Ubuntu 16.04 上的 Tomcat 8 加密)。

©2015-2025 艾丽卡 support@alaica.com