在Ubuntu 16.04上安装Apache Tomcat 8的方法

本文涉及的产品
云防火墙,500元 1000GB
简介: 在Ubuntu 16.04上安装Apache Tomcat 8的方法

简介

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

先决条件

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

步骤 1:安装 Java

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

首先,更新您的 apt-get 软件包索引:

sudo apt-get update

然后使用 apt-get 安装 Java 开发工具包:

sudo apt-get install default-jdk

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

步骤 2:创建 Tomcat 用户

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

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

sudo groupadd tomcat

接下来,创建一个新的 tomcat 用户。我们将使该用户成为 tomcat 组的成员,其主目录为 /opt/tomcat(我们将在其中安装 Tomcat),并且其 shell 为 /bin/false(这样就无法登录到该帐户):

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

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

步骤 3:安装 Tomcat

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

在 Tomcat 8 下载页面上找到最新版本的 Tomcat 8。在撰写本文时,最新版本是 8.5.5,但如果有更稳定的版本可用,您应该使用更晚的稳定版本。在 Binary Distributions 部分下的 Core 列表中,复制 “tar.gz” 的链接。

接下来,切换到服务器上的 /tmp 目录。这是一个很好的目录,用于下载临时项目,比如 Tomcat 压缩包,在提取 Tomcat 内容后我们将不再需要它:

cd /tmp

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

curl -O http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

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

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

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

步骤 4:更新权限

我们设置的 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

tomcat 用户设置为 webappsworktemplogs 目录的所有者:

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

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

步骤 5:创建 systemd 服务文件

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

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

sudo update-java-alternatives -l
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64

可以通过获取最后一列的输出(用红色标记)并在末尾添加 /jre 来构造正确的 JAVA_HOME 变量。给定上面的示例,该服务器的正确 JAVA_HOME 将是:

[secondary_label JAVA_HOME]
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre

您的 JAVA_HOME 可能不同。

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

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.8.0-openjdk-amd64/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=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target

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

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

sudo systemctl daemon-reload

通过输入以下命令启动 Tomcat 服务:

sudo systemctl start tomcat

通过输入以下命令,双重检查它是否没有错误地启动:

sudo systemctl status tomcat

步骤 6:调整防火墙并测试 Tomcat 服务器

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

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

Tomcat 使用端口 8080 来接受常规请求。通过输入以下命令允许流量通过该端口:

sudo ufw allow 8080

防火墙修改后,您可以在 Web 浏览器中输入您的域名或 IP 地址,后面加上 :8080 来访问默认的欢迎页面:

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

您将看到默认的 Tomcat 欢迎页面,以及其他信息。但是,如果您点击管理应用程序的链接,例如 Manager App,您将被拒绝访问。我们可以在下一步配置该访问权限。

如果您成功访问了 Tomcat,现在是启用服务文件的好时机,这样 Tomcat 将在启动时自动启动:

sudo systemctl enable tomcat

步骤 7:配置 Tomcat Web 管理界面

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

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

您需要添加一个可以访问 manager-guiadmin-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 应用程序,输入:

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

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

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 服务:

sudo systemctl restart tomcat

步骤 8:访问 Web 界面

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

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

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

!Tomcat root

让我们来看看 Manager App,通过链接或 http://server_domain_or_IP:8080/manager/html 可以访问。您需要输入添加到 tomcat-users.xml 文件中的帐户凭据。之后,您应该会看到一个类似于这样的页面:

!Tomcat Web Application Manager

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

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

!Tomcat Virtual Host Manager

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

结论

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

目前,您的Tomcat安装是可用的,但完全未加密。这意味着所有数据,包括密码等敏感信息,都是以纯文本形式发送的,可以被互联网上的其他方拦截和阅读。为了防止这种情况发生,强烈建议您使用SSL加密您的连接。您可以按照本指南了解如何加密与Tomcat的连接。


目录
相关文章
|
10天前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
57 2
|
10天前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
765 3
|
4天前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
25 4
Linux系统之Ubuntu安装cockpit管理工具
|
9天前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
42 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
9天前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
14 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
|
10天前
|
Ubuntu 虚拟化
软件安装(二):VMware ubuntu20.04 安装步骤
这篇文章是关于如何在VMware Workstation 16 Player上安装Ubuntu 20.04桌面版的详细步骤指南。
74 2
软件安装(二):VMware ubuntu20.04 安装步骤
|
11天前
|
PyTorch TensorFlow 算法框架/工具
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
本文提供了在Ubuntu 18.04操作系统的NVIDIA Jetson平台上安装深度学习和计算机视觉相关库的详细步骤,包括PyTorch、OpenCV、ONNX、TensorFlow等。
23 1
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
|
13天前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
46 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
5天前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
17 1
|
9天前
|
Ubuntu Linux
软件安装(五):Ubuntu 18.04安装Teamviewer 看一遍就会
这篇文章介绍了在Ubuntu 18.04系统上通过图形界面和命令行两种方法安装TeamViewer远程控制软件的步骤。
16 2