网站搜索

如何在 Ubuntu 中安装 Apache Tomcat


如果要运行包含 Java 服务器页面编码或 Java servlet 的网页,可以使用 Apache Tomcat。它是一个开源 Web 服务器和 servlet 容器,由 Apache Software Foundation 发布。

Tomcat 可以作为独立产品使用,具有自己的 Web 服务器,也可以与其他 Web 服务器(例如 ApacheIIS)结合使用。 Tomcat 的最新版本是 9.0.14,它构建在 Tomcat 88.5 之上,并实现了 Servlet 4.0、JSP 2.2。

另请阅读:如何在 CentOS/RHEL 中安装 Apache Tomcat 9

新版本进行了以下改进:

  • 添加了对 HTTP/2 的支持。
  • 添加了对使用 OpenSSL 来支持 JSSE 连接器的 TLS 支持。
  • 添加了对 TLS 虚拟主机 (SNI) 的支持。

在本教程中,我们将向您展示如何在 Ubuntu 18.10 和旧版本的 Ubuntu 中安装 Apache Tomcat 9

第 1 步:安装 Java

要运行 Java Web 应用程序,Tomcat 需要在服务器上安装 Java。为了满足该要求,我们将安装OpenJDK,如图所示。

sudo apt update
sudo apt install default-jdk

第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。

第3步:安装Apache Tomcat

要下载最新的可用软件包,请前往 Tomcat 的下载页面并获取最新版本。

在编写本教程时,Tomcat 的最新版本是9.0.14。要下载该版本,请将当前目录更改为其他目录。例如,您可以使用 /tmp

cd /tmp

然后使用 wget 命令下载 Tomcat 存档:

wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512

如果你想验证文件的 sha512 总和,你可以运行:


sha512sum apache-tomcat-9.0.14.tar.gz
cat apache-tomcat-9.0.14.tar.gz.sha512

两个文件的结果值(哈希)应该相同。

如前所述,我们将在 /opt/tomcat 中安装 Tomcat。我们必须创建该目录:

sudo mkdir /opt/tomcat

现在我们可以将下载的包解压到该新目录中:

sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1

现在导航到 /opt/tomcat,我们将在其中更新文件夹所有权和权限:

cd /opt/tomcat

并将/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 进程。

步骤4:为Tomcat创建SystemD服务文件

因为我们希望将 Tomcat 作为服务运行,所以我们需要一个文件来帮助我们轻松管理该进程。为此,我们将创建一个 systemd 服务文件。 Tomcat 必须知道 Java 位于系统上的位置。

要查找该位置,请使用以下命令:

sudo update-java-alternatives -l

该命令的输出将显示 JAVA_HOME 的位置。

现在,使用该信息我们准备创建 Tomcat 服务文件。

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

将以下代码粘贴到文件中:

[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

确保将 JAVA_HOME 设置为适合您系统的 JAVA_HOME。准备好后,保存文件并关闭它。现在,使用以下命令重新加载 systemd 守护进程,以便它可以找到我们的新服务文件:

sudo systemctl daemon-reload

然后启动Tomcat服务:

sudo systemctl start tomcat

您可以通过以下方式验证服务状态:

sudo systemctl status tomcat

现在,您可以使用系统的 IP 地址和服务默认端口 8080 在浏览器中测试 Tomcat

http://ip-address:8080

您应该看到类似于下图所示的结果:

如果您没有看到上述输出,您可能需要在防火墙中允许端口 8080,如图所示。

sudo ufw allow 8080

如果您希望 Tomcat 在系统启动时启动,请运行:

systemctl enable tomcat

第 5 步:配置 Apache Tomcat

Tomcat 预装了一个网络管理器应用程序。为了使用它,我们需要在 tomcat-users.xml 文件中设置身份验证。使用您喜欢的文本编辑器打开并编辑该文件:

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

我们将添加一个能够访问经理管理员界面的用户。要配置此类用户,请在 标记之间添加以下行:

<user username="Username" password="Password" roles="manager-gui,admin-gui"/>

确保更改:

  • 用户名 – 您想要验证的用户。
  • 密码 – 您希望用于身份验证的密码。

由于默认情况下对Host ManagerManager的访问受到限制,因此我们希望删除或更改这些限制。要进行此类更改,您可以加载以下文件:

对于管理器应用程序:

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

对于主机管理器应用程序:

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

在这些文件中,您可以评论 IP 限制或允许您的公共 IP 地址。为了本教程的目的,我注释了该行:

要使我们的更改生效,请使用以下命令重新加载 tomcat 服务:

sudo systemctl restart tomcat 


您现在可以通过访问 http://ipaddress:8080/manager/ 来测试
管理器应用程序。当提示输入用户名和密码时,请使用您之前配置的用户名和密码。之后您应该看到的界面如下所示:

要访问主机管理器,您可以使用http://ip-address:8080/host-manager/

使用虚拟主机管理器,您可以为 Tomcat 应用程序创建虚拟主机。

第 6 步:通过创建测试文件来测试 Apache Tomcat

您可以通过在 /opt/tomcat/webapps/ROOT/ 目录中创建测试文件来检查一切是否正常运行。

让我们创建这样的文件:

sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp

在该文件中粘贴以下代码:

<html>
<head>
<title>Tecmint post:TomcatServer</title>
</head>
<body>

<START OF JAVA CODES>
<%
    out.println("Hello World! I am running my first JSP Application");
    out.println("<BR>Tecmint is an Awesome online Linux Resource.");
%>
<END OF JAVA CODES>

</body>
</html>

保存文件并设置所有权,如图所示。

sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp

现在使用 http://ip-address:8080/howtoing.jsp 在浏览器中加载该文件。

就是这样!您已经完成了 Apache Tomcat 服务器的设置并运行了您的第一个 Java 代码。我们希望这个过程对您来说简单明了。如果您遇到任何问题,请通过下面的评论表分享您的问题。