Ubuntu16.04 安装 Tomcat8

介绍

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

准备

在开始使用本指南之前,您应该为您的服务器设置具有sudo权限的非root用户。 您可以通过完成Ubuntu 16.04初始服务器设置指南来了解如何完成此操作。

Step 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服务。

Step 2: 创建 Tomcat 用户

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

首先,创建一个新的tomcat group

sudo groupadd tomcat

接下来,创建一个新的tomcat用户。 我们将使这个用户成为tomcat group的成员,其主目录为/opt/tomcat(我们将在其中安装Tomcat)以及/bin/false的shell(因此没有人可以登录该帐户):

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

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

Step 3: 安装 Tomcat

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

Tomcat 8下载页面找到最新版本的Tomcat 8。 在撰写本文时,最新版本为8.5.5,但如果有新版本可用,则应使用较新的稳定版本。 在Binary Distributions下面,然后在Core列表下面,复制“tar.gz”的下载链接。

接下来,切换到服务器上的/tmp目录。 这是一个很好的目录来下载临时项目,比如Tomcat 压缩包,在解压Tomcat内容后我们将不再需要这个压缩包:

cd /tmp

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

curl -O http://apache.mirrors.ionfish.org/tomcat/刚才复制的链接.tar.gz

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

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

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

Step 4: 更新权限

我们创建的tomcat用户需要有权限访问/opt/tomcat目录。 我们现在就来设置它。

切换到解压Tomcat的安装目录:

cd /opt/tomcat

把整个安装目录的所有权提供给tomcat group

sudo chgrp -R tomcat /opt/tomcat

接下来,让tomcat group 拥有对conf目录下所以文件的访问权限和执行权限:

sudo chmod -R g+r conf
sudo chmod g+x conf

使tomcat成为webappsworktemplogs目录的所有者:

sudo chown -R tomcat webapps/ work/ temp/ logs/

现在已经建立了适当的权限,我们可以创建一个systemd服务文件来管理Tomcat进程。

Step 5: 创建一个systemd服务文件

我们希望能够将Tomcat作为服务运行,因此我们将设置systemd服务文件。

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

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

正确的JAVA_HOME变量可以通过从最后一列输出(/usr/lib/jvm/java-1.8.0-openjdk-amd64)并将/jre附加到结尾来构造。 鉴于上面的例子,这个服务器的正确的JAVA_HOME是:

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

您的JAVA_HOME可能会有所不同。

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

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

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

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-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

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

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

在我们这样做之前,我们需要调整防火墙以允许我们获得服务的请求。

Tomcat使用端口8080来接受常规请求。通过输入以下内容允许该端口的通信

sudo ufw allow 8080

修改防火墙后,您可以访问默认的启动页面,方法是在Web浏览器中输入您的 IP地址+:8080。

    Open in web browser
    http://server_domain_or_IP:8080

除了其他信息外,您还将看到默认的Tomcat启动页面。 但是,如果您单击Manager App的链接,您将被拒绝访问。 后面我们可以配置该访问。

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

sudo systemctl enable tomcat

Step 7: 配置Tomcat Web管理界面

为了使用Tomcat附带的Web应用程序管理器,我们必须添加一个用户。

我们将通过编辑tomcat-users.xml文件来做到这一点:

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

您将添加可以访问manager-guiadmin-gui(Tomcat附带的Web应用程序)的用户。 你可以通过在tomcat-users标签之间定义一个类似于下面例子的用户。 请务必将用户名和密码更改为安全的形式:

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

完成后保存并关闭文件。

默认情况下,较新版本的Tomcat限制对ManagerHost Manager的访问。由于我们正在远程机器上安装,因此您可能希望删除或更改此限制。要更改这些IP地址的限制,请打开相应的context.xml文件。

对于Manager应用程序,请输入:

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地址添加到列表中:

<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

Step 8:访问Web界面

现在我们已经创建了一个用户,我们可以在Web浏览器中再次访问Web管理界面。 您可以再次访问默认的启动页面,方法是在Web浏览器中输入您的 IP地址并追加:8080。

    Open in web browser
    http://server_domain_or_IP:8080

您看到的页面应该与您之前测试时所用的页面相同:这里写图片描述

让我们来看看Manager应用程序,可以通过链接或在浏览器输入
http://server_domain_or_IP:8080/manager/html访问。 您需要输入添加到tomcat-users.xml文件中的用户名和密码。 之后,你应该看到一个如下所示的页面:

这里写图片描述

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

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

这里写图片描述

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

恭喜

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

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

原文连接

1 : How To Install Apache Tomcat 8 on Ubuntu 16.04 (需要梯子)
2 : How To Install Apache Tomcat 8 on CentOS 7 (需要梯子)

注意

文中 Step2 创建 Tomcat 用户 中:

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

创建的用户无法登录,如果需要远程登录,可以使用下面的命令:

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

如果你已经输入第一条命令了,可以使用下面命令修改权限:

sudo usermod -s /bin/bash tomcat
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值