本文最先发布在:https://www.itcoder.tech/posts/how-to-install-tomcat-9-on-ubuntu-20-04/

这篇指南描述如何在 Ubuntu 20.04 上安装和配置 Tomcat 9 。

Apache Tomcat是一个开源的 Web 服务器和 Java servlet 容器。它是世界上最流行的选择,用来构建基于 Java 的网站和应用。Tomcat 是一个轻量级,易于使用,并且有一个强壮的扩展生态系统。

一、安装 Java

Tomcat 9 要求在系统上安装 Java SE 8 或者更新版本。我们将会安装 OpenJDK 11,Java 平台的开源实现。

以 root 或者其他 sudo 权限用户身份运行下面的命令来更新软件包索引,并且安装 OpenJDK 11 JDK 软件包:

sudo apt update
sudo apt install openjdk-11-jdk

一旦安装完成,通过检查 Java 版本来验证它:

java -version

输出应该像下面这样:

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

二、创建一个系统用户

以 root 用户运行 Tomcat 有一个安全风险。我们将会创建一个系统用户和用户组,其主目录为/opt/tomcat。我们将会使用这个用户来运行 Tomcat 服务。想要这么做,输入下面的命令:

sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

三、下载 Tomcat

Tomcat 二进制发行版在 Tomcat 下载页面可以下载。

就在写作的时候,最新的 Tomcat 版本是 9.0.35。在继续下一步之前,检查 Tomcat 9 下载页面,看看是否有更新的版本可以下载。

使用wget来下载 Tomcat zip 文件到/tmp目录:

VERSION=9.0.35
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp

一旦下载完成,解压 tar 文件到/opt/tomcat目录:

sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/

Tomcat 会定期更新 安全补丁和新功能。想要更好地升级版本和更新,我们将会创建一个符号链接,称为latest,指向 Tomcat 安装目录。

sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest

稍后,当升级 Tomcat 时,解压新的版本,并且修改符号链接,指向它。

前面创建的系统用户必须对 tomcat 安装目录有访问权限。修改目录归属到用户和用户组 tomcat:

sudo chown -R tomcat: /opt/tomcat

在 Tomcat bin目录下的 shell 脚本必须可执行:

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

这些脚本将会被用来启动,停止,以及其他对 Tomcat 的管理操作。

四、创建 SystemD 单元文件

与使用 shell 脚本来启动和停止 Tomcat 服务器相比,我们将会将它作为服务来运行。

打开你的文本编辑器,并且在/etc/systemd/system/目录下创建一个 tomcat.service 单元文件。

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

粘贴下面的配置文件:

[Unit]
Description=Tomcat 9 servlet container
After=network.target[Service]
Type=forkingUser=tomcat
Group=tomcatEnvironment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh[Install]
WantedBy=multi-user.target
如果你的 Java 安装路径不一样,请修改`JAVA_HOME`环境变量。

保存并且关闭文件,通知 systemd 一个新的单元文件存在:

sudo systemctl daemon-reload

启用并且启动 Tomcat 服务:

sudo systemctl enable --now tomcat

检查服务状态:

sudo systemctl status tomcat

输出应该显示 Tomcat 服务器已经启用,并且运行了:

● tomcat.service - Tomcat 9 servlet containerLoaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2020-05-25 17:58:37 UTC; 4s agoProcess: 5342 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)Main PID: 5362 (java)
...

你可以 像其他 systemd 服务一样 启动,停止和重启 Tomcat:

sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat

五、配置防火墙

如果你的服务器被防火墙保护,并且你想从外面访问你的Tomcat,你需要打开8080端口。

使用下面的命令打开必要的端口:

sudo ufw allow 8080/tcp
通常,当在生产环境运行 Tomcat 时,你应该是使用一个负载均衡,或者反向代理服务器。这是仅仅允许从你的本地网络访问`8080`端口的最佳实践。

六、配置 Tomcat 网页管理界面

正在此时,你应该通过一个浏览器在8080端口访问 Tomcat。网页管理界面不能访问,因为我们还没有创建一个用户。

Tomcat 用户和角色被定义在 tomcat-users.xml。这个文件是一个带有注释和示例的模板,展示如何创建一个用户和角色。

在这个例子中,我们将会创建一个用户“admin-gui” 和 “manager-gui” 角色。这个 “admin-gui”角色允许用户访问/host-manager/htmlURL 来创建,删除和其他对虚拟主机的管理。这个“manager-gui”角色允许用户部署和解除部署 web 应用,而不用通过/host-manager/html界面重启整个容器。

打开tomcat-users.xml文件,创建一个新用户,像下面这样:

sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
<tomcat-users>
<!--Comments
--><role rolename="admin-gui"/><role rolename="manager-gui"/><user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>

确保你将用户名和密码修改得更加安全。

默认情况下,Tomcat 网页管理界面被配置仅仅从 localhost 访问 Manager 和 Host Manager 应用。想要从远程 IP 访问网页界面,你需要移除这些限制。

这可能会有一些安全隐患,我们不推荐在生产系统中这么做。

想要从任何地方都能访问网页界面,打开配置的两个文件,注释或者移除注释的部分。

对于 Manager:

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

对于 Host Manager:

sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/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>

如果你只想从指定的 IP 访问网页界面,不要注释这一段,而是将你的公网 IP 地址加进去。

假如说你的公网 IP 是41.41.41.41,并且你想允许从那个 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|41.41.41.41" />
</Context>

被允许的 IP 列表以|来分隔。你可以添加一个简单的 IP 地址,或者使用正则表达式。

一旦完成,重启 Tomcat 服务,使应用生效:

sudo systemctl restart tomcat

七、测试 Tomcat 安装

打开你的浏览器,输入:http://<your_domain_or_IP_address>:8080

假设安装成功,一个类似下面的页面将会出现:

Tomcat 网页应用管理在:

http://<your_domain_or_IP_address>:8080/manager/html

Tomcat 虚拟主机管理在:

 http://<your_domain_or_IP_address>:8080/host-manager/html

八、总结

我们已经向你展示如何在 Ubuntu 20.04 上安装 Tomcat 9.0,并且如何访问 Tomcat 管理界面。

想要获得更多关于 Apache Tomcat 的信息,浏览官方文档页面。




如果你有任何疑问,请通过以下方式联系我们:

微信:

微信群: 加上面的微信,备注微信群

QQ: 3217680847

QQ 群: 82695646

如何在 Ubuntu 20.04 上安装 Tomcat 9相关推荐

  1. ubuntu使用fail2ban_如何在Ubuntu 20.04上安装和配置Fail2ban

    暴露给Internet的任何服务都有遭受恶意软件攻击的风险. 例如,如果您在可公开访问的网络上运行服务,则攻击者可以使用暴力手段尝试登录您的帐户. Fail2ban是一种工具,可通过监视服务日志中的恶 ...

  2. ubuntu19 安装git_如何在Ubuntu 20.04上安装Git

    Git是世界上最受欢迎的分布式版本控制系统,被许多开源和商业项目使用.它使您可以与其他开发人员在项目上进行协作,跟踪代码更改,还原到上一阶段,创建分支等. Git最初是由Linux内核的创建者Linu ...

  3. go 写文件_如何在 Ubuntu 20.04 上安装 Go

    本文最先发布在: 如何在 Ubuntu 20.04 上安装 Go​www.itcoder.tech Go,通常被称为 golang,它是一门由 Google 创建的现代化的开源编程语言,它允许你构建实 ...

  4. ubuntu安装ftp_如何在 Ubuntu 20.04 上安装 Webmin

    本文最先发布在: 如何在 Ubuntu 20.04 上安装 Webmin​www.itcoder.tech Webmin 是一个开源控制面板,它允许你通过简单易用的 Web 界面,就可以管理你的 Li ...

  5. 如何在Ubuntu 20.04 上安装 Xrdp 服务器(远程桌面)

    本文最先发布在: https://www.itcoder.tech/posts/how-to-install-xrdp-on-ubuntu-20-04/ Xrdp 是一个微软远程桌面协议(RDP)的开 ...

  6. 如何在 Ubuntu 20.04 上安装 Java

    本文最先发布地址 如何在 Ubuntu 20.04 上安装 Java 在这个指南中,我们将会描述如何在 Ubuntu 20.04 上安装 Java. Java 是世界上最流行的编程语言之一,被用来构建 ...

  7. 如何在Ubuntu 20.04上安装和使用TimescaleDB

    The author selected the COVID-19 Relief Fund to receive a donation as part of the Write for DOnation ...

  8. 如何在 Ubuntu 20.04 上安装 Wine 6.0

    过渡到 Linux 的用户的担忧之一是他们是否可以在 Linux 上运行自己喜欢的应用程序.这些范围可以从 Windows 游戏和简单的应用程序软件.值得庆幸的是,Wine 允许用户在 Linux/U ...

  9. linux xrdp 远程桌面,详解如何在Ubuntu 20.04上安装Xrdp服务器(远程桌面)

    Xrdp 是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统.通过 RDP,你可以登录远程机器,并且创建一个真实的桌面会话,就像你登录本地机器一样. 这篇指南讲解如何在 Ub ...

最新文章

  1. incompatible with sql_mode=only_full_group_by
  2. 世界人工智能大会圆桌实录:AI与产业融合创新的挑战与机遇
  3. 7p后摄像头抖动修复_节气门清洗后怠速还是抖动,到底什么毛病?
  4. Oracle 事务概述
  5. boost::mp11::mp_insert_c相关用法的测试程序
  6. [py][mx]django form验证-给db减压
  7. Excel常用快捷键与打印
  8. JavaCV音视频开发宝典:录制vp8和vp9编码的webm格式视频,以mp4转webm为例
  9. 提升update执行效率
  10. 列宽一字符等于多少厘米_excel表格换算厘米的方法
  11. 网站被百度提示有风险,该如何解决?网站被黑怎么办?
  12. 编译orge1.7.0
  13. JavaFX+Kotlin游戏从入门到放弃:拯救蛇蛇大作战又名454行实现几何数独游戏
  14. 一款值得使用的会议室管理软件【会议预订小程序】
  15. 超火的微信小说小程序源码-自带采集带安装教程
  16. 利用手机距离感应器来切换声音听筒播放或声筒播放
  17. 基于ATR确定头寸的择时股票量化策略
  18. ArcHydro介绍
  19. 室内定位技术WIFI,蓝牙,UWB一较高下,新导智能浅析哪家是王者
  20. Winform绘画工具类Graphics

热门文章

  1. EGO1—使用8选1数据选择器实现四输入逻辑函数 f=∑wxyz(1,3,6,7,11,13,14)
  2. 【鸿蒙】鸿蒙操作系统应用开发入门级初体验
  3. MyIE2变Maxthon就来了(转)
  4. pdo mysql 安装 zval_macos下编译安装php5.2.17步骤
  5. 六、RTMP协议 时间戳
  6. 给定一个整数,判断它能否被3,5,7整除,并输出以下信息:
  7. 智能建筑中高低压配电设备集成监控和管理系统应用分析-李亚俊
  8. 如何使用python编程解决生活中的问题-日常工作问题处理中Python程序的运用
  9. cmu 445 poject 2笔记
  10. 量子力学是不完备的?