如何在Ubuntu上安装Apache Tomcat

如果您想要运行包含Java服务器页面编码或Java servlets的网页,您可以使用Apache Tomcat。它是一个由Apache软件基金会发布的开源Web服务器和Servlet容器。

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。

第三步:安装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进程。

第四步:为Tomcat创建一个SystemD服务文件

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

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

$ sudo update-java-alternatives -l

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

Find 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
Verify Apache Tomcat Status

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

http://ip-address:8080

您应该看到的结果类似于下面的图像:

Apache Tomcat Web Page

如果您没有看到上面的输出,则可能需要像下面那样允许端口8080在您的防火墙中:

$ sudo ufw allow 8080

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

$ systemctl enable tomcat

步骤5:配置Apache Tomcat

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

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

我们将添加一个用户,该用户将能够访问manageradmin界面。要配置这样的用户,在<tomcat-users> </tomcat-users>标签之间添加以下行:

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

确保更改:

  • 用户名 – 为您希望进行身份验证的用户。
  • 密码 – 为您希望用于身份验证的密码。
Configure Apache Tomcat

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

对于Manager应用程序:

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

对于Host Manager应用程序:

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

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

Allow Apache Tomcat Access

为了使我们的更改生效,请重新加载tomcat服务:

$ sudo systemctl restart tomcat 


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

Access Apache Tomcat Manager

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

Access Apache Tomcat Virtual 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/tecmint.jsp在您的浏览器中加载该文件。

Test Apache Tomcat

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

Source:
https://www.tecmint.com/install-apache-tomcat-in-ubuntu/