如何在 Debian 9 上安装 Tomcat 9

2023-11-05

Apache Tomcat 是一个开源应用程序服务器,支持 Java Servlet、JavaServer Pages、Java 表达式语言和 Java WebSocket 技术。它是当今世界上使用最广泛的应用程序和 Web 服务器之一。

本教程将向您展示如何在 Debian 9 上安装 Apache Tomcat 9.0 并配置 Tomcat Web 管理界面。

先决条件#

在继续本教程之前,请确保您以以下身份登录具有 sudo 权限的用户 .

我们将使用以下命令下载 Tomcat zip 文件wget。如果你没有wget安装在您的系统上,您可以通过键入以下内容来完成:

sudo apt install wget

安装 OpenJDK#

Tomcat 9.0 需要 Java SE 8 或更高版本。到安装默认的 OpenJDK 包从 Debian 9 存储库运行以下命令:

sudo apt install default-jdk

创建 Tomcat 用户#

以 root 用户身份运行 Tomcat 存在安全风险,不建议这样做。

创建新的系统用户和组的主目录为/opt/tomcat通过运行以下命令:

sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

该用户将用于运行 Tomcat 服务。

下载Tomcat#

我们将从以下位置下载最新版本的 Tomcat 9.0.xTomcat下载页面 .

在撰写本文时,最新的 Tomcat 版本是 9.0.27。在继续下一步之前,您应该检查 Tomcat 9 下载页面以查看是否有更新的版本可用。

更改为/tmp目录并下载 zip 文件wget:

cd /tmpwget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz

下载完成后,提取 tar 文件 :

tar -xf apache-tomcat-9.0.27.tar.gz

将 Tomcat 源文件移至/opt/tomcat目录:

sudo mv apache-tomcat-9.0.27 /opt/tomcat/

Tomcat 9 更新频繁。为了更好地控制版本和更新,创建符号链接 called latest,指向 Tomcat 安装目录:

sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest

稍后,当升级 Tomcat 版本时,您只需解压较新版本并将符号链接更改为指向最新版本即可。

改变所有权 of the /opt/tomcat用户和组的目录tomcat这样用户就可以访问 tomcat 安装:

sudo chown -R tomcat: /opt/tomcat

也把脚本写在里面bin 目录可执行文件 :

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

创建一个systemd单元文件#

创建一个新的tomcat.service单元文件中的/etc/systemd/system/包含以下内容的目录:

/etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9.0 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

通知 systemd 我们创建了一个新的单元文件并通过执行以下命令启动 Tomcat 服务:

sudo systemctl daemon-reloadsudo systemctl start tomcat

通过键入以下内容检查 Tomcat 服务状态:

sudo systemctl status tomcat
● tomcat.service - Tomcat 9 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-12-01 20:47:50 UTC; 4s ago
  Process: 1759 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 1767 (java)
   CGroup: /system.slice/tomcat.service

如果没有错误,您可以启用Tomcat服务在启动时自动启动:

sudo systemctl enable tomcat

您可以像任何其他 systemd 单元服务一样启动、停止和重新启动 Tomcat:

sudo systemctl start tomcatsudo systemctl stop tomcatsudo systemctl restart tomcat

调整防火墙#

If your 在 Debian 系统上运行的防火墙如果您想从本地网络外部访问 tomcat 界面,您需要打开该端口8080:

sudo ufw allow 8080/tcp
通常,在生产环境中运行 Tomcat 应用程序时,它位于负载均衡器或反向代理。最佳实践是限制对端口的访问8080仅限您的内部网络。

配置Tomcat Web管理界面#

现在 Tomcat 已安装在 Debian 服务器上,下一步是创建一个有权访问 Web 管理界面的用户。

Tomcat 用户及其角色定义在tomcat-users.xml file.

如果打开该文件,您会注意到它充满了描述如何配置该文件的注释和示例。

sudo vim /opt/tomcat/latest/conf/tomcat-users.xml

我们将在以下目录中定义一个可以访问 tomcat Web 界面(manager-gui 和 admin-gui)的新用户tomcat-users.xml文件,如下图所示。确保将用户名和密码更改为更安全的内容:

/opt/tomcat/latest/conf/tomcat-users.xml
<tomcat-users>
<!--
    Comments
-->
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>

默认情况下,Tomcat Web 管理界面仅允许从本地主机访问。如果您想从远程 IP 或任何不推荐的地方访问 Web 界面,因为存在安全风险,您可以打开以下文件并进行以下更改。

如果您需要从任何地方访问 Web 界面,请打开以下文件并注释或删除以黄色突出显示的行:

/opt/tomcat/latest/webapps/manager/META-INF/context.xml
<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>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<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>

如果您只需要从特定 IP 访问 Web 界面,请将您的公共 IP 添加到列表中,而不是注释这些块。 假设您的公共 IP 是32.32.32.32并且您只想允许来自该 IP 的访问:

/opt/tomcat/latest/webapps/manager/META-INF/context.xml
<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|32.32.32.32" />
</Context>
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<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|32.32.32.32" />
</Context>

允许的 IP 地址列表是用竖线分隔的列表|。您可以添加单个 IP 地址或使用正则表达式。

重新启动 Tomcat 服务以使更改生效:

sudo systemctl restart tomcat

测试安装#

打开浏览器并输入:http://<your_domain_or_IP_address>:8080

如果安装成功,会出现类似如下的界面:

Tomcat Web 应用程序管理器仪表板位于http://<your_domain_or_IP_address>:8080/manager/html。从这里,您可以部署、取消部署、启动、停止和重新加载应用程序。

Tomcat 虚拟主机管理器仪表板位于http://<your_domain_or_IP_address>:8080/host-manager/html。从这里,您可以创建、删除和管理 Tomcat 虚拟主机。

结论#

您已在 Debian 9 系统上成功安装 Tomcat 9.0。您现在可以访问官方Apache Tomcat 9.0 文档并了解有关 Apache Tomcat 功能的更多信息。

如果您遇到问题或有反馈,请在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Debian 9 上安装 Tomcat 9 的相关文章

随机推荐

  • 使用 Python FastAPI 和 MySQL

    FastAPI 是一个现代 快速 高性能 的 Web 框架 用于使用 Python 构建 API 它基于标准 Python 类型提示构建 使其易于使用 同时为开发人员提供了许多高级功能 构建 FastAPI 应用程序时 为了安全性和模块化
  • 如何在 CentOS 8 上配置静态 IP 地址

    问题 如何在 CentOS 8 上更改或配置 IP 地址 在 CentOS 桌面系统上设置静态 IP 地址的步骤 截至今天 CentOS 8 Linux 操作系统是 CentOS 的最新可用版本 桌面提供了一个有吸引力的 GUI 来使用它
  • Java 开发人员的重要代码格式化技巧

    Java 代码格式化是编写干净 可读和可维护代码的一个重要方面 在整个团队或组织中采用一套一致的格式化规则将显着提高代码库的整体质量 使开发人员更容易理解 修改和调试代码 本文将概述 Java 代码格式化最佳实践 讨论开发人员可以用来增强代
  • 如何在 Fedora 35/34/33 上安装 Erlang

    Erlang是一种编程语言 用于构建具有高可用性要求的大规模可扩展的软实时系统 Erlang运行时系统内置了对并发 分布式和容错的支持 本教程将帮助您在 Fedora Linux 系统上安装 erlang 步骤 1 在 Fedora 上安装
  • 如何在 Ubuntu 和 Debian 上设置 Squid 代理服务器

    如果您正在寻找一种增强 Debian 服务器安全性和性能的方法 那么设置 Squid 代理服务器可能是一个不错的选择 Squid 是一种广泛使用的开源代理服务器 提供缓存 过滤和身份验证等各种功能 在本文中 我们将讨论在 Ubuntu 和基
  • 如何在 CentOS 8 上安装和配置 VNC

    虚拟网络计算 VNC 是一种图形桌面共享系统 允许您使用键盘和鼠标远程控制另一台计算机 本文介绍了在 CentOS 8 上安装和配置 VNC 服务器的步骤 我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器 先决条件 要遵循
  • Linux 中的日期命令

    在本教程中 我们将介绍以下基础知识date命令 The date命令显示或设置系统日期 它最常用于以不同格式打印日期和时间以及计算未来和过去的日期 使用Linuxdate命令 语法为date命令如下 date OPTION FORMAT 要
  • 如何在 CentOS 8 上安装 OpenCV

    OpenCV 开源计算机视觉库 是一个开源计算机视觉库 绑定了 C Python 和 Java 并支持所有主要操作系统 它可以利用多核处理并具有 GPU 加速功能来实现实时操作 OpenCV 的应用非常广泛 包括医学图像分析 拼接街景图像
  • 如何在 Linux 中设置和列出环境变量

    在基于 Linux 和 Unix 的系统中 环境变量是一组动态命名值 存储在系统中 供在 shell 或子 shell 中启动的应用程序使用 简而言之 环境变量是具有名称和关联值的变量 环境变量允许您自定义系统的工作方式以及系统上应用程序的
  • 如何在 Debian 10 上安装 Gradle

    Gradle 是一个强大而灵活的构建工具 主要用于 Java 项目 结合了 Ant 和Maven 与使用 XML 进行脚本编写的前辈不同 Gradle 使用Groovy 一种动态的 面向对象的编程语言 用于 Java 平台定义项目和构建脚本
  • 如何在 Linux、Windows 和 macOS 上编辑 Hosts 文件

    Hosts 文件用于将域名 主机名 映射到 IP 地址 它是所有操作系统 包括 Linux Windows 和 macOS 都使用的纯文本文件 主机文件的优先级高于 DNS 当您输入要访问的网站的域名时 必须将域名转换为其相应的IP地址 操
  • Bash 连接字符串

    最常用的字符串操作之一是连接 字符串连接只是一个奇特的编程术语 用于通过将一个字符串附加到另一个字符串的末尾来将字符串连接在一起 在本教程中 我们将解释如何在 Bash 中连接字符串 连接字符串 连接两个或多个字符串变量的最简单方法是将它们
  • 如何在 Debian 9 上安装和使用 Docker Compose

    Docker 组合是一个允许您定义和编排多容器 Docker 应用程序的工具 它使用 YAML 文件来配置应用程序的容器 网络和卷 Compose 可用于多种目的 单主机应用程序部署 自动化测试和本地开发是 Docker Compose 最
  • 如何在 Debian 10 Linux 上安装 Apache Web 服务器

    Apache HTTP 服务器是世界上最流行的 Web 服务器之一 它是一个开源 跨平台的 HTTP 服务器 为大部分互联网网站提供支持 Apache 提供了许多强大的功能 可以通过附加模块进行扩展 在本教程中 我们将解释如何在 Debia
  • 如何在 Debian 9 上安装 PHP

    Debian 9 附带的 PHP 7 0 版本很快就会停止支持 并且不再接收安全更新 在本教程中 我们将引导您完成在 Debian 9 服务器上安装 PHP 7 2 的步骤 我们还将向您展示如何配置 Apache 和 Nginx 来运行 P
  • 如何在 Debian 9 上使用 VSFTPD 设置 FTP 服务器

    FTP 文件传输协议 是一种标准网络协议 用于在远程网络之间传输文件 为了更安全 更快速的数据传输 请使用SCP or SFTP 有许多可用于 Linux 的开源 FTP 服务器 最流行和最广泛使用的是PureFTPd ProFTPD an
  • Linux 中的 Xargs 命令

    The xargs实用程序允许您从标准输入构建和执行命令 它通常通过管道与其他命令结合使用 With xargs 您可以提供标准输入作为命令行实用程序的参数 例如mkdir and rm 在本教程中 我们将介绍使用xargs命令 如何使用L
  • 如何在 Ubuntu 18.04 上安装 Chromium Web 浏览器

    Chromium是一款专为现代网络打造的快速 稳定且安全的浏览器 它是许多浏览器的基础 包括世界上使用最广泛的网络浏览器谷歌浏览器 Chromium 和 Google Chrome 之间的主要区别在于 Chromium 是开源的 与 Chr
  • 如何在 Raspberry Pi 上安装 Node.js 和 npm

    Node js 是一个基于 Chrome 的 JavaScript 引擎构建的开源跨平台 JavaScript 运行时环境 允许服务器端执行 JavaScript 代码 它主要用于构建服务器端应用程序 但作为全栈和前端解决方案也非常流行 n
  • 如何在 Debian 9 上安装 Tomcat 9

    Apache Tomcat 是一个开源应用程序服务器 支持 Java Servlet JavaServer Pages Java 表达式语言和 Java WebSocket 技术 它是当今世界上使用最广泛的应用程序和 Web 服务器之一 本