如何在 Ubuntu 中安装 Apache Tomcat
如果要运行包含 Java 服务器页面编码或 Java servlet 的网页,可以使用 Apache Tomcat。它是一个开源 Web 服务器和 servlet 容器,由 Apache Software Foundation 发布。
Tomcat 可以作为独立产品使用,具有自己的 Web 服务器,也可以与其他 Web 服务器(例如 Apache 或 IIS)结合使用。 Tomcat 的最新版本是 9.0.14,它构建在 Tomcat 8 和 8.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 用户成为 webapps、work、temp 和 logs 目录的所有者:
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 Manager和Manager的访问受到限制,因此我们希望删除或更改这些限制。要进行此类更改,您可以加载以下文件:
对于管理器应用程序:
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 代码。我们希望这个过程对您来说简单明了。如果您遇到任何问题,请通过下面的评论表分享您的问题。