如果您想要运行包含Java服务器页面编码或Java servlets的网页,您可以使用Apache Tomcat。它是一个由Apache软件基金会发布的开源Web服务器和Servlet容器。
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。
第三步:安装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进程。
第四步:为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有一个预先安装的Web管理器应用程序。为了使用它,我们需要在我们的tomcat-users.xml文件中设置身份验证。使用您喜欢的文本编辑器打开并编辑该文件:
$ sudo vim /opt/tomcat/conf/tomcat-users.xml
我们将添加一个用户,该用户将能够访问manager和admin界面。要配置这样的用户,在<tomcat-users> </tomcat-users>
标签之间添加以下行:
<user username="Username" password="Password" roles="manager-gui,admin-gui"/>
确保更改:
- 用户名 – 为您希望进行身份验证的用户。
- 密码 – 为您希望用于身份验证的密码。

由于默认情况下对Host Manager和Manager的访问受限,我们将希望删除或更改这些限制。要进行这些更改,您可以加载以下文件:
对于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地址。为了本教程的目的,我已经注释了该行:

为了使我们的更改生效,请重新加载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/tecmint.jsp在您的浏览器中加载该文件。

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