如何在Ubuntu中安装Apache Tomcat

在本教程中,我们将向您展示如何在Ubuntu 18.10及更早版本的Ubuntu中安装和配置Apache Tomcat 9。

如果要运行包含Java服务器页面编码或Java servlet的网页,可以使用Apache Tomcat 它是Apache Software Foundation发布的开源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组的成员。 这个用户的home位置是/ opt / tomcat,因为这是我们要安装Tomcat的地方。 shell设置为/ bin / false

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

现在我们准备继续下一步并下载Tomcat。

第3步:安装Apache Tomcat

要下载最新的软件包,请访问Tomcat的下载页面并获取最新版本。

在编写本教程时,最新版本的Tomcat9.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

接下来我们将创建webappsworktemplogs目录的tomcat用户所有者:

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

现在已经设置了适当的权限和所有权,我们准备创建一个systemd启动文件,这将帮助我们管理Tomcat进程。

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

因为我们想要将Tomcat作为服务运行,所以我们需要一个可以帮助我们轻松管理流程的文件。 为此,我们将创建一个systemd服务文件。 Tomcat必须知道Java在您的系统中的位置。

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

$ sudo update-java-alternatives -l

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

查找Java主页

查找Java主页

现在,使用该信息,我们准备创建我们的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
验证Apache Tomcat状态

验证Apache Tomcat状态

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

http://ip-address:8080

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

Apache Tomcat网页

Apache Tomcat网页

如果您没有看到上述输出,则可能需要在防火墙中允许端口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

我们将添加一个能够访问管理器管理界面的用户。 要在<tomcat-users> </tomcat-users>标记之间配置此类用户,请添加以下行:

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

确保更改:

  • 用户名 - 与您要进行身份验证的用户。
  • 密码 - 使用您希望用于身份验证的密码。
配置Apache Tomcat

配置Apache Tomcat

由于默认情况下对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地址。 出于本教程的目的,我对该行进行了评论:

允许Apache Tomcat访问

允许Apache Tomcat访问

要进行实时更改,请使用以下命令重新加载tomcat服务:

$ sudo systemctl restart tomcat 


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

访问Apache Tomcat Manager

访问Apache Tomcat Manager

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

访问Apache Tomcat Virtual Host Manager

访问Apache Tomcat Virtual Host Manager

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

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

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

让我们创建这样的文件:

$ sudo vim /opt/tomcat/webapps/ROOT/howtoing.jsp

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

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

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

</body>
</html>

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

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

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

测试Apache Tomcat

测试Apache Tomcat

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


分享按钮