前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 18.04上安装Apache Tomcat 9

如何在Ubuntu 18.04上安装Apache Tomcat 9

原创
作者头像
木纸鸢
发布2018-07-23 17:55:30
8.1K1
发布2018-07-23 17:55:30
举报

介绍

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

准备

需要一台Ubuntu 具有sudo权限的非root用户的服务器,默认Ubuntu 18.04版本。没有服务器的用户可以购买和使用腾讯云服务器或者直接在腾讯云实验室Ubuntu服务器上直接上机安装Apache Tomcat 。

第一步,安装Java

Tomcat要求在服务器上安装Java,以便可以执行任何Java Web应用程序代码。我们可以通过apt安装OpenJDK。

首先,更新本地软件包:

代码语言:txt
复制
$ sudo apt update

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

代码语言:txt
复制
$ sudo apt install default-jdk

现在已经安装了Java,我们可以创建一个tomcat用户来运行Tomcat服务。

第二步,创建Tomcat用户

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

首先,创建一个新的tomcat组:

代码语言:txt
复制
$ sudo groupadd tomcat

接下来,创建一个新的 tomcat用户。我们将使该用户成为tomcat组的成员,设置其主目录/opt/tomcat(我们将安装Tomcat到这个目录)和禁止改用户用shell进行登录:

代码语言:txt
复制
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

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

第三步,安装Tomcat

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

Tomcat 9下载页面上找到最新版本的Tomcat 9 。在撰写本文时,最新版本为9.0.10,但如果有新的可用,则应使用更高版本的稳定版本。在Binary Distributions部分下,然后在Core列表下,复制以tar.gz结尾的链接。

接下来,切换到服务器上的/tmp目录。这是一个很好的存储下载文件的目录,比如Tomcat tarball。

打开/tmp目录:

代码语言:txt
复制
$ cd /tmp

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

代码语言:txt
复制
$ curl -O http://mirror.cc.columbia.edu/pub/software/apache/tomcat/tomcat-9/v9.0.10/bin/apache-tomcat-9.0.10.tar.gz

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

代码语言:txt
复制
$ sudo mkdir /opt/tomcat
$ sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1

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

第四步, 更新权限

我们设置的tomcat用户需要能够访问Tomcat。

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

代码语言:txt
复制
$ cd /opt/tomcat

授予tomcat组对整个安装目录的所有权:

代码语言:txt
复制
$ sudo chgrp -R tomcat /opt/tomcat

接下来,为tomcat组提供对conf目录及其所有内容的读访问权限,并执行对目录本身的访问:

代码语言:txt
复制
$ sudo chmod -R g+r conf
$ sudo chmod g+x conf

使tomcat用户成为webappsworktemp日志等目录的所有者::

代码语言:txt
复制
$ sudo chown -R tomcat webapps/ work/ temp/ logs/

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

第五步, 创建systemd服务文件

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

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

代码语言:txt
复制
$ sudo update-java-alternatives -l
代码语言:txt
复制
java-1.11.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.11.0-openjdk-amd64

JAVA_HOME是最后一列的输出。鉴于上面的示例,JAVA_HOM在这台服务器上的正确位置是:

代码语言:txt
复制
JAVA_HOME
/usr/lib/jvm/java-1.11.0-openjdk-amd64

你的JAVA_HOME位置可能会有所不同。

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

代码语言:txt
复制
$ sudo nano /etc/systemd/system/tomcat.service

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

/etc/systemd/system/tomcat.service

代码语言:txt
复制
[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

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

接下来,重新加载systemd守护程序:

代码语言:txt
复制
$ sudo systemctl daemon-reload

输入以下命令启动Tomcat服务:

代码语言:txt
复制
$ sudo systemctl start tomcat

输入以下内容,仔细检查它是否正常启动:

代码语言:txt
复制
$ sudo systemctl status tomcat

第六步, 调整防火墙并测试Tomcat服务器

现在Tomcat服务已启动,我们可以测试以确保默认页面可用。在我们测试之前,我们需要调整防火墙,来允许我们的请求。

Tomcat使用端口8080接受一般的请求。输入以下内容允许到该端口的流量:

代码语言:txt
复制
$ sudo ufw allow 8080

修改防火墙后,您可以通过访问域名或IP地址,在域名或者IP地址后面加上:8080,在Web浏览器中访问:

代码语言:txt
复制
Open in web browser
http://server_domain_or_IP:8080

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

如果您能够成功访问Tomcat,现在就可以设置该服务在Tomcat启动时跟着一起启动:

代码语言:txt
复制
$ sudo systemctl enable tomcat

第七步,配置Tomcat Web管理界面

为了使用Tomcat附带的管理器Web应用程序,我们必须向Tomcat服务器添加登录验证。我们将通过编辑tomcat-users.xml文件来完成此操作:

代码语言:txt
复制
$ sudo nano /opt/tomcat/conf/tomcat-users.xml

您将需要添加可以访问manager-guiadmin-gui(Tomcat附带的Web应用程序)的用户。您可以通过在tomcat-users标记之间定义用户(类似于下面的示例)来实现此目的。请务必将用户名和密码更改为安全的内容:

tomcat-users.xml - 管理员用户

代码语言:txt
复制
<tomcat-users . . .>
    <user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>

完成后保存并关闭文件。

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

对于Manager应用,请输入:

代码语言:txt
复制
$ sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml

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

代码语言:txt
复制
$ sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

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

Tomcat webapps的context.xml文件

代码语言:txt
复制
<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服务:

代码语言:txt
复制
$ sudo systemctl restart tomcat

第八步,访问Web界面

现在我们已经创建了一个用户,我们可以在Web浏览器中再次访问Web管理界面。再一次,在您的域名或者IP地址后添加:8080,然后在浏览器里访问:

代码语言:txt
复制
Open in web browser
http://server_domain_or_IP:8080

您看到的页面应该与您之前测试时给出的页面相同:

Tomcat root
Tomcat root

我们来看看Manager App,可以通过http://server_domain_or_IP:8080/manager/html链接访问。您需要输入添加到文件中的帐户到tomcat-users.xml文件上。之后,您应该看到如下所示的页面:

Tomcat Web应用程序管理器
Tomcat Web应用程序管理器

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

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

Tomcat虚拟主机管理器
Tomcat虚拟主机管理器

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

结论

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

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

如果需要Apache运行在windows上, 可以使用腾讯云实验室Windows 搭建 AMP (Apache/PHP/MySQL) 环境的上机练习。


参考文献:《How To Install Apache Tomcat 9 on Ubuntu 18.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 第一步,安装Java
  • 第二步,创建Tomcat用户
  • 第三步,安装Tomcat
  • 第四步, 更新权限
  • 第五步, 创建systemd服务文件
  • 第六步, 调整防火墙并测试Tomcat服务器
  • 第七步,配置Tomcat Web管理界面
  • 第八步,访问Web界面
  • 结论
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档