如何在CentOS7上安装ApacheTomcat8

来自菜鸟教程
跳转至:导航、​搜索

介绍

Apache Tomcat 是一个 Web 服务器和 servlet 容器,用于为 Java 应用程序提供服务。 Tomcat 是由 Apache 软件基金会发布的 Java Servlet 和 JavaServer Pages 技术的开源实现。 本教程涵盖了 CentOS 7 服务器上最新版本 Tomcat 8 的基本安装和一些配置。

先决条件

在开始阅读本指南之前,您应该在服务器上设置一个单独的非 root 用户帐户。 您可以通过完成 CentOS 7 的 初始服务器设置 中的步骤 1-3 来了解如何执行此操作。 我们将在本教程的其余部分使用此处创建的 demo 用户。

安装 Java

Tomcat 要求在服务器上安装 Java,因此可以执行任何 Java Web 应用程序代码。 让我们通过 yum 安装 OpenJDK 7 来满足这个要求。

要使用 yum 安装 OpenJDK 7 JDK,请运行以下命令:

sudo yum install java-1.7.0-openjdk-devel

在提示符处回答 y 以继续安装 OpenJDK 7。

请注意,我们稍后需要配置 Tomcat 的 JAVA_HOME 目录的快捷方式可以在 /usr/lib/jvm/jre 中找到。

现在 Java 已经安装好了,让我们创建一个 tomcat 用户,它将用于运行 Tomcat 服务。

创建 Tomcat 用户

出于安全考虑,Tomcat 应该以非特权用户身份运行(即 不是根)。 我们将创建一个新的用户和组来运行 Tomcat 服务。

首先,新建一个tomcat组:

sudo groupadd tomcat

然后创建一个新的 tomcat 用户。 我们将使该用户成为 tomcat 组的成员,主目录为 /opt/tomcat(我们将在其中安装 Tomcat),外壳为 /bin/false(所以没有人可以登录该帐户):

sudo useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

现在我们的 tomcat 用户已经设置好了,让我们下载并安装 Tomcat。

安装 Tomcat

此时安装 Tomcat 8 最简单的方法是下载最新的二进制版本,然后手动配置。

下载 Tomcat 二进制文件

Tomcat 8 下载页面 找到最新版本的 Tomcat 8。 在撰写本文时,最新版本是 8.5.37。 在 Binary Distributions 部分下,然后在 Core 列表下,将链接复制到“tar.gz”。

让我们使用 wget 将最新的二进制发行版下载到我们的主目录。

首先,使用 yum 包管理器安装 wget

sudo yum install wget

然后,切换到您的主目录:

cd ~

现在,使用 wget 并粘贴链接以下载 Tomcat 8 存档,如下所示(您的镜像链接可能与示例不同):

wget https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz

我们将把 Tomcat 安装到 /opt/tomcat 目录。 创建目录,然后使用以下命令将存档解压缩到该目录:

sudo mkdir /opt/tomcat
sudo tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1

现在我们已准备好设置正确的用户权限。

更新权限

我们设置的 tomcat 用户需要具有对 Tomcat 安装的正确访问权限。 我们现在就设置它。

更改为Tomcat安装路径:

cd /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 单元文件。

安装 Systemd 单元文件

因为我们希望能够将 Tomcat 作为服务运行,所以我们将设置一个 Tomcat Systemd 单元文件。

通过运行以下命令创建并打开单元文件:

sudo vi /etc/systemd/system/tomcat.service

粘贴以下脚本。 您可能还想修改 CATALINA_OPTS 中指定的内存分配设置:

/etc/systemd/system/tomcat.service

# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/jre
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=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

保存并退出。 此脚本告诉服务器以 [X62X] 用户身份运行 Tomcat 服务,并指定设置。

现在重新加载 Systemd 以加载 Tomcat 单元文件:

sudo systemctl daemon-reload

现在您可以使用 systemctl 命令启动 Tomcat 服务:

sudo systemctl start tomcat

通过键入以下内容检查服务是否已成功启动:

sudo systemctl status tomcat

如果要启用 Tomcat 服务,使其在服务器启动时启动,请运行以下命令:

sudo systemctl enable tomcat

Tomcat 尚未完全设置,但您可以通过在 Web 浏览器中转到您的域或 IP 地址,然后是 :8080 来访问默认启动页面:

Open in web browser:http://server_IP_address:8080

除了其他信息之外,您还将看到默认的 Tomcat 启动页面。 现在我们将深入了解Tomcat的安装。

配置 Tomcat Web 管理界面

为了使用 Tomcat 附带的 manager webapp,我们必须添加一个登录到我们的 Tomcat 服务器。 我们将通过编辑 tomcat-users.xml 文件来做到这一点:

sudo vi /opt/tomcat/conf/tomcat-users.xml

该文件包含描述如何配置文件的注释。 您可能想删除以下两行之间的所有注释,或者如果您想引用示例,您可以留下它们:

tomcat-users.xml 摘录

<tomcat-users>
...
</tomcat-users>

您需要添加一个可以访问 manager-guiadmin-gui(Tomcat 附带的 web 应用程序)的用户。 您可以通过定义类似于以下示例的用户来执行此操作。 确保将用户名和密码更改为安全的:

tomcat-users.xml — 管理员用户

<tomcat-users>
    <user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>

保存并退出 tomcat-users.xml 文件。

默认情况下,较新版本的 Tomcat 将对 Manager 和 Host Manager 应用程序的访问限制为来自服务器本身的连接。 由于我们在远程机器上安装,您可能希望删除或更改此限制。 要更改这些 IP 地址限制,请打开相应的 context.xml 文件。

对于 Manager 应用程序,键入:

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

对于主机管理器应用程序,键入:

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

在里面,注释掉 IP 地址限制以允许从任何地方进行连接。 或者,如果您只想允许访问来自您自己的 IP 地址的连接,您可以将您的公共 IP 地址添加到列表中:

Tomcat webapps 的 context.xml 文件

<Context antiResourceLocking="false" privileged="true" >
  <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>

完成后保存并关闭文件。

要使我们的更改生效,请重新启动 Tomcat 服务:

sudo systemctl restart tomcat

访问网络界面

现在 Tomcat 已启动并运行,让我们在 Web 浏览器中访问 Web 管理界面。 您可以通过在端口 8080 上访问服务器的公共 IP 地址来执行此操作:

Open in web browser:http://server_IP_address:8080

您将看到类似于下图的内容:

如您所见,有指向我们为其配置管理员用户的管理员 web 应用程序的链接。

让我们看一下 Manager App,可通过链接或 http://server_IP_address:8080/manager/html 访问:

Web 应用程序管理器用于管理您的 Java 应用程序。 您可以在此处启动、停止、重新加载、部署和取消部署。 您还可以在您的应用程序上运行一些诊断程序(即 发现内存泄漏)。 最后,有关您的服务器的信息可在此页面的最底部找到。

现在让我们看一下主机管理器,可通过链接或 http://server_IP_address:8080/host-manager/html/ 访问:

在 Virtual Host Manager 页面中,您可以添加虚拟主机来为您的应用程序提供服务。

结论

Tomcat 安装完成! 您现在可以自由部署自己的 Java Web 应用程序了!