如何在Ubuntu 16.04安装Apache Tomcat 8

介绍

Apache Tomcat是用于提供Java应用程序的Web服务器和servlet容器。 Tomcat是Apache Software Foundation发布的Java Servlet和JavaServer Pages技术的开源实现。 本教程介绍了在Ubuntu 16.04服务器上的最新版本的Tomcat 8的基本安装和一些配置。

先决条件

你本指南开始之前,你应该有一个非root用户sudo设置您的服务器上的权限。 你可以学习如何填写我们做到这一点的Ubuntu 16.04服务器初始设置指南

第1步:安装Java

Tomcat需要在服务器上安装Java,以便可以执行任何Java Web应用程序代码。 我们可以通过使用apt-get安装OpenJDK来满足这个要求。

首先,更新apt-get包索引:

sudo apt-get update

然后使用apt-get安装Java Development Kit软件包:

sudo apt-get install default-jdk

现在已安装的Java,我们可以建立一个tomcat用户,这将是用于运行Tomcat服务。

第2步:创建Tomcat用户

出于安全目的,Tomcat应作为非特权用户运行(即不是root)。 我们将创建一个将运行Tomcat服务的新用户和组。

首先,创建一个新tomcat组:

sudo groupadd tomcat

接下来,创建一个新tomcat用户。 我们将使该用户的成员tomcat组,一个主目录/opt/tomcat (在这里,我们将安装Tomcat),并与壳/bin/false (所以没有人可以登录到帐户):

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

现在,我们tomcat用户设置,让我们下载并安装Tomcat。

第3步:安装Tomcat

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

发现在最新版本的Tomcat 8 Tomcat的8页下载 在写作的时候,最新的版本是8.5.5,但如果它是可用的,你应该使用更高的稳定版本。 根据二进制分发部分,然后在核心清单,将链接复制到“tar.gz的”。

接下来,切换到/tmp服务器上的目录。 这是一个很好的目录下载临时项目,如Tomcat tarball,我们不需要在提取Tomcat内容后:

cd /tmp

使用curl下载您从Tomcat的网站上复制的链接:

curl -O http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

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

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

接下来,我们可以为我们的安装设置正确的用户权限。

第4步:更新权限

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服务文件来管理Tomcat进程。

第5步:创建systemd服务文件

我们想要能够运行Tomcat作为服务,所以我们将设置systemd服务文件。

Tomcat需要知道Java的安装位置。 此路径通常称为“JAVA_HOME”。 查找该位置的最简单方法是运行以下命令:

sudo update-java-alternatives -l
Outputjava-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64

正确的JAVA_HOME变量可以通过采取从最后一列的输出(以红色突出显示),并附加兴建/jre到最后。 给定上述示例,正确JAVA_HOME该服务器将是:

JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre

您的JAVA_HOME可以是不同的。

有了这条信息,我们可以创建systemd服务文件。 打开一个名为tomcat.service/etc/systemd/system目录下键入:

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

将以下内容粘贴到服务文件中。 修改的值JAVA_HOME如果有必要,以配合您的系统上找到的价值。 您可能还需要修改以指定的内存分配设置CATALINA_OPTS

/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-8-openjdk-amd64/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=/opt/tomcat/bin/shutdown.sh

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

[Install]
WantedBy=multi-user.target

完成后,保存并关闭文件。

接下来,重新加载systemd守护进程,以便它知道我们的服务文件:

sudo systemctl daemon-reload

键入以下命令来启动Tomcat服务:

sudo systemctl start tomcat

请通过键入以下内容来双击检查其是否已正确启动:

sudo systemctl status tomcat

第6步:调整防火墙并测试Tomcat服务器

现在Tomcat服务已启动,我们可以测试以确保默认页面可用。

在我们这样做之前,我们需要调整防火墙以允许我们的请求到达服务。 如果你遵循了先决条件,你将有一个ufw当前启用防火墙。

Tomcat使用端口8080来接受传统的请求。 通过键入以下内容来允许流向该端口的流量:

sudo ufw allow 8080

与防火墙修改,您可以进入您的域名或IP地址,然后访问默认初始页面:8080在Web浏览器:

Open in web browserhttp://server_domain_or_IP:8080

除了其他信息之外,您还将看到默认的Tomcat启动页面。 但是,如果您单击管理器应用程序的链接,例如,您将被拒绝访问。 接下来我们可以配置该访问。

如果您能够成功访问Tomcat,现在是启用服务文件的好时机,以便Tomcat在引导时自动启动:

sudo systemctl enable tomcat

第7步:配置Tomcat Web管理界面

为了使用Tomcat附带的管理器Web应用程序,我们必须添加一个登录到我们的Tomcat服务器。 我们将通过编辑这样做tomcat-users.xml的文件:

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

您将要新增谁可以访问用户manager-guiadmin-gui (即附带的Tomcat Web应用程序)。 您可以通过定义一个用户,类似于下面的例子中,与这样做tomcat-users标签。 请务必将用户名和密码更改为安全:

tomcat-users.xml - 管理用户
<tomcat-users . . .>
    <user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>

保存并在完成后关闭文件。

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

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

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

对于Host Manager应用程序,请键入:

sudo nano /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

第8步:访问Web界面

现在我们已经创建了一个用户,我们可以在Web浏览器中再次访问Web管理界面。 再次,您可以通过在浏览器中输入服务器的域名或IP地址(在端口8080上输入)来获取正确的界面:

Open in web browserhttp://server_domain_or_IP:8080

你看到的页面应该是你在早期测试时给出的页面:

Tomcat根

让我们来看看管理器应用程序,通过该链接或访问http:// server_domain_or_IP :8080/manager/html 您将需要输入您添加到帐户凭据tomcat-users.xml的文件。 之后,您应该看到如下所示的页面:

Tomcat Web应用程序管理器

Web应用程序管理器用于管理Java应用程序。 您可以在此处开始,停止,重新加载,部署和取消部署。 您还可以对应用程序运行一些诊断(即查找内存泄漏)。 最后,有关您的服务器的信息位于此页面的最下方。

现在,让我们来看看主机管理,通过链接或访问http:// server_domain_or_IP :8080/host-manager/html/

Tomcat虚拟主机管理器

从Virtual Host Manager页面,您可以添加要从中提供应用程序的虚拟主机。

结论

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

目前,您的Tomcat安装功能正常,但完全未加密。 这意味着所有数据,包括敏感项目(如密码)都以明文形式发送,可以由互联网上的其他方拦截和阅读。 为了防止这种情况发生,强烈建议您使用SSL加密连接。 您可以了解如何通过以下到Tomcat您的连接进行加密本指南

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏