如何在 Linux 上安装 Apache Tomcat 9 以部署 Java WebApp

举报
Tiamo_T 发表于 2021/10/21 09:27:13 2021/10/21
【摘要】 Apache Tomcat 是一个开源 Java 服务器。 当您想要部署和执行使用任何 Java 技术(包括 Java Servlet、JSP 等)编写的 Java 应用程序时,您需要 Tomcat。 本篇介绍了如何在 Linux 平台上安装最新的 Apache Tomcat 9.x 版

当您想要部署和执行使用任何 Java 技术(包括 Java Servlet、JSP 等)编写的 Java 应用程序时,您需要 Tomcat。

本篇介绍了如何在 Linux 平台上安装最新的 Apache Tomcat 9.x 版

先决条件:安装 Java 8

要正确安装和配置 Apache Tomcat 9,您需要在系统上安装 Java 版本 8。

要验证系统上的 java 版本,请执行以下操作。

$ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

创建 tomcat 用户

首先,以 root 身份创建一个名为 tomcat 的用户并分配一个密码,如下所示。


adduser tomcat

passwd tomcat

接下来,su 到这个新创建的 tomcat 用户。

su - tomcat

下载 Apache Tomcat 9

转至 Apache Tomcat 9下载页面

在Core下,点击“tar.gz”链接下载最新tomcat的tar.gz版本。

在这个例子中,我们正在下载这个文件:apache-tomcat-9.0.0.M21.tar.gz

安装 Apache Tomcat

首先,使用tar 命令解压 tar.gz 文件,如下所示

tar xvfz apache-tomcat-9.0.0.M21.tar.gz 

这将创建一个包含版本号的目录 apache-tomcat。cd 到这个新目录。

cd apache-tomcat-9.0.0.M21

Apache Tomcat 9 目录

您将在此 apache-tomcat 目录下看到以下文件和目录。

$ ls -altr
drwxr-x---. 2 tomcat tomcat     6 May  4 22:42 work
drwxr-x---. 2 tomcat tomcat     6 May  4 22:42 logs
drwxr-x---. 7 tomcat tomcat    76 May  4 22:43 webapps
-rw-r-----. 1 tomcat tomcat 15946 May  4 22:45 RUNNING.txt
-rw-r-----. 1 tomcat tomcat  6709 May  4 22:45 RELEASE-NOTES
-rw-r-----. 1 tomcat tomcat  1804 May  4 22:45 NOTICE
-rw-r-----. 1 tomcat tomcat 57092 May  4 22:45 LICENSE
drwx------. 2 tomcat tomcat  4096 May  4 22:45 conf
drwxr-x---. 2 tomcat tomcat    29 Jun  1 17:25 temp
drwxr-x---. 2 tomcat tomcat  4096 Jun  1 17:25 lib
drwxr-x---. 2 tomcat tomcat  4096 Jun  1 17:25 bin

在上面:

  • bin - 这包含启动 tomcat、设置环境变量等所需的所有二进制文件和 shell 脚本。
  • conf - 这是所有配置文件所在的 tomcat 配置目录。主要的 tomcat 服务器配置文件是位于此目录下的 server.xml。
  • lib – 包含 tomcat 服务器所需的库文件和类
  • logs – 包含 tomcat 的日志和输出文件(即 catalina.out 等)
  • webapps – 您将在此处部署 Java Web 应用程序。任何部署在该目录下的应用程序都会被 Apache tomcat 自动加载。例如,您可以在 tomcat 上部署birt-viewer
  • 工作 - 这用作您的网络应用程序的临时工作目录。
  • temp – 由 JVM 使用,它将创建由 java.io.tmpdir 指定的任何必需的临时文件。

设置 Apache Tomcat CATALINA_HOME

在 Apache tomcat 脚本中使用的 home 环境变量称为 CATALINA_HOME。

Catalina 指的是 Tomcat。

将此变量设置为我们之前提取的 apache tomcat 的完整目录,如下所示。

export CATALINA_HOME=/home/tomcat/apache-tomcat-9.0.0.M21

除了在命令行上设置之外,请确保将上述行添加到 tomcat 的 bash_profile 中,如下所示。这将确保每次以 tomcat 用户身份登录时都设置此变量。

$ vi ~/.bash_profile 
export CATALINA_HOME=/home/tomcat/apache-tomcat-9.0.0.M21

注销并以 tomcat 用户身份登录以验证此环境变量设置是否正确。

$ set | grep CATALINA
CATALINA_HOME=/home/tomcat/apache-tomcat-9.0.0.M21

启动 Apache Tomcat

要启动 Apache tomcat,我们将使用名为 catalina.sh 的脚本,该脚本位于 CATALINA_HOME 的 bin 目录中。

因此,如下所示执行 catalina.sh start 以在您的系统上启动 Apache tomcat。

$ $CATALINA_HOME/bin/catalina.sh start

使用grep命令验证tomcat java进程是否启动并在后台运行如下图。

$ ps -ef | grep -i tomcat
root      3412  2045  0 17:27 pts/0    00:00:00 su - tomcat
tomcat    3413  3412  0 17:27 pts/0    00:00:00 -bash
tomcat    3463     1  1 17:30 pts/0    00:00:02 //bin/java -Djava.util.logging.config.file=/home/tomcat/apache-tomcat-9.0.0.M21/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /home/tomcat/apache-tomcat-9.0.0.M21/bin/bootstrap.jar:/home/tomcat/apache-tomcat-9.0.0.M21/bin/tomcat-juli.jar -Dcatalina.base=/home/tomcat/apache-tomcat-9.0.0.M21 -Dcatalina.home=/home/tomcat/apache-tomcat-9.0.0.M21 -Djava.io.tmpdir=/home/tomcat/apache-tomcat-9.0.0.M21/temp org.apache.catalina.startup.Bootstrap start

注意:如果它没有启动,那么您可能需要正确设置 JAVA_HOME 位置,如下所示。

查看 Tomcat 日志文件

在Tomcat启动后,可以查看日志文件来确定tomcat是否正常启动。这还将告诉您是否所有 Web 应用程序都部署没有任何问题。

日志文件是 catalina.out,如下所示。这显示了 catalina.out 的部分输出

cd $CATALINA_HOME/logs
$ more catalina.out 

This is the partial output from the top of the catalina.out file. All of these line start with timestamp followed by "INFO [main] org.apache.catalina.startup.VersionLoggerListener.log", which is not shown here.
$ more catalina.out 
Server version:        Apache Tomcat/9.0.0.M21
Server built:          May 4 2020 22:42:36 UTC
Server number:         9.0.0.0
OS Name:               Linux
OS Version:            3.10.0-327.10.1.el7.x86_64
Architecture:          amd64
Java Home:             /usr/java/jre1.8.0_131
JVM Version:           1.8.0_131-b11
JVM Vendor:            Oracle Corporation
CATALINA_BASE:         /home/tomcat/apache-tomcat-9.0.0.M21
CATALINA_HOME:         /home/tomcat/apache-tomcat-9.0.0.M21

以下是上述 catalina.out 日志文件的最后几行,其中显示 tomcat 服务器正常启动,没有任何问题。

INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/home/tomcat/apache-tomcat-9.0.0.M21/webapps/manager] has finished in [18] ms
INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 18181 ms

停止 Apache Tomcat

要使用 Apache Tomcat,请使用带有 stop 参数的相同 catalina.sh 脚本,如下所示。

$ $CATALINA_HOME/bin/catalina.sh stop
Using CATALINA_BASE:   /home/tomcat/apache-tomcat-9.0.0.M21
Using CATALINA_HOME:   /home/tomcat/apache-tomcat-9.0.0.M21
Using CATALINA_TMPDIR: /home/tomcat/apache-tomcat-9.0.0.M21/temp
Using JRE_HOME:        /
Using CLASSPATH:       /home/tomcat/apache-tomcat-9.0.0.M21/bin/bootstrap.jar:/home/tomcat/apache-tomcat-9.0.0.M21/bin/tomcat-juli.jar

“catalina.sh stop”后,您将看不到任何在后台运行的java tomcat进程,如下所示。

$ ps -ef | grep -i tomcat
root      3412  2045  0 17:27 pts/0    00:00:00 su - tomcat
tomcat    3413  3412  0 17:27 pts/0    00:00:00 -bash
tomcat    3592  3413  0 17:42 pts/0    00:00:00 ps -ef
tomcat    3593  3413  0 17:42 pts/0    00:00:00 grep --color=auto -i tomcat

除了使用 catalina.sh 脚本,您还可以使用 shutdown.sh 脚本,如下所示。这做同样的事情。

$ $CATALINA_HOME/bin/shutdown.sh

以下是 catalina.out 日志文件的输出,表明 tomcat 服务器已正确关闭,没有任何问题。所有这些行都以时间戳开头,此处未显示。

INFO [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.
INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]
INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"]
INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]

JAVA_HOME 和 JRE_HOME 环境变量

了解这两个环境变量将如何影响您的 Apache Tomcat 很重要:

如果您的系统上安装了多个 Java,那么您可能希望 Apache tomcat 使用特定版本的 Java 而不是默认版本。

为此,您需要适当地设置 JRE_HOME 或 JAVA_HOME。

JRE_HOME – 这是用于 Java 运行时环境。使用此环境变量指定系统上 Java JRE 8 的位置。
JAVA_HOME – 这是用于 Java 开发工具包。使用它来指定 Java JDK 8 在您的系统上的位置。

如果您安装了 JDK,最好使用 JAVA_HOME,因为这将为您提供仅使用 JRE 时不允许的其他启动选项。

出于某种原因,如果您同时设置了 JRE_HOME 和 JAVA_HOME,那么 tomcat 将在启动期间使用 JRE_HOME。

指定这些环境变量的最佳方法是在位于 $CATALINA_HOME/bin 目录下的 setenv.sh 脚本中。

将您的 JAVA_HOME 环境变量添加到 setenv.sh 文件中,如下所示。

$ cd $CATALINA_HOME/bin

$ vi setenv.sh
JAVA_HOME=/usr/java/jdk1.8.0_131

现在当你如下图启动Tomcat时,你可以看到它正在使用JAVA_HOME环境的值来启动tomcat。

$ $CATALINA_HOME/bin/catalina.sh start
Using CATALINA_BASE:   /home/tomcat/apache-tomcat-9.0.0.M21
Using CATALINA_HOME:   /home/tomcat/apache-tomcat-9.0.0.M21
Using CATALINA_TMPDIR: /home/tomcat/apache-tomcat-9.0.0.M21/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_131
Using CLASSPATH:       /home/tomcat/apache-tomcat-9.0.0.M21/bin/bootstrap.jar:/home/tomcat/apache-tomcat-9.0.0.M21/bin/tomcat-juli.jar
Tomcat started.

注意:尽管在上面的输出中显示 JRE_HOME,但请注意它的值实际上是我们在 setenv.sh 文件中设置的 JAVA_HOME 的值。

此外,从 catalina.out 日志文件中,您将在启动期间看到以下内容,这确认这是使用我们设置的这个新值。
信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log Java 主页:/usr/java/jdk1.8.0_131/jre

Apache Tomcat UI – 默认主页

当一切都启动并运行时,您应该可以转到以下 URL 查看 tomcat 主页。

http://{your-ip-address}:8080

默认情况下,Apache tomcat 安装在端口 8080 上运行。

如果您的系统上已经有一些其他应用程序在端口 8080 上运行,那么您可以通过将此端口值从 8080 修改为以下 server.xml 文件中的其他内容来更改此设置:

vi $CATALINA_HOME/conf/server.xml

以下是安装后默认的Apache Tomcat主页。

Apache Tomcat 9 主页
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。