如何在 Ubuntu 20.04 上安装 Tomcat 9
本文最先发布在: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/html
URL 来创建,删除和其他对虚拟主机的管理。这个“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相关推荐
- ubuntu使用fail2ban_如何在Ubuntu 20.04上安装和配置Fail2ban
暴露给Internet的任何服务都有遭受恶意软件攻击的风险. 例如,如果您在可公开访问的网络上运行服务,则攻击者可以使用暴力手段尝试登录您的帐户. Fail2ban是一种工具,可通过监视服务日志中的恶 ...
- ubuntu19 安装git_如何在Ubuntu 20.04上安装Git
Git是世界上最受欢迎的分布式版本控制系统,被许多开源和商业项目使用.它使您可以与其他开发人员在项目上进行协作,跟踪代码更改,还原到上一阶段,创建分支等. Git最初是由Linux内核的创建者Linu ...
- go 写文件_如何在 Ubuntu 20.04 上安装 Go
本文最先发布在: 如何在 Ubuntu 20.04 上安装 Gowww.itcoder.tech Go,通常被称为 golang,它是一门由 Google 创建的现代化的开源编程语言,它允许你构建实 ...
- ubuntu安装ftp_如何在 Ubuntu 20.04 上安装 Webmin
本文最先发布在: 如何在 Ubuntu 20.04 上安装 Webminwww.itcoder.tech Webmin 是一个开源控制面板,它允许你通过简单易用的 Web 界面,就可以管理你的 Li ...
- 如何在Ubuntu 20.04 上安装 Xrdp 服务器(远程桌面)
本文最先发布在: https://www.itcoder.tech/posts/how-to-install-xrdp-on-ubuntu-20-04/ Xrdp 是一个微软远程桌面协议(RDP)的开 ...
- 如何在 Ubuntu 20.04 上安装 Java
本文最先发布地址 如何在 Ubuntu 20.04 上安装 Java 在这个指南中,我们将会描述如何在 Ubuntu 20.04 上安装 Java. Java 是世界上最流行的编程语言之一,被用来构建 ...
- 如何在Ubuntu 20.04上安装和使用TimescaleDB
The author selected the COVID-19 Relief Fund to receive a donation as part of the Write for DOnation ...
- 如何在 Ubuntu 20.04 上安装 Wine 6.0
过渡到 Linux 的用户的担忧之一是他们是否可以在 Linux 上运行自己喜欢的应用程序.这些范围可以从 Windows 游戏和简单的应用程序软件.值得庆幸的是,Wine 允许用户在 Linux/U ...
- linux xrdp 远程桌面,详解如何在Ubuntu 20.04上安装Xrdp服务器(远程桌面)
Xrdp 是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统.通过 RDP,你可以登录远程机器,并且创建一个真实的桌面会话,就像你登录本地机器一样. 这篇指南讲解如何在 Ub ...
最新文章
- incompatible with sql_mode=only_full_group_by
- 世界人工智能大会圆桌实录:AI与产业融合创新的挑战与机遇
- 7p后摄像头抖动修复_节气门清洗后怠速还是抖动,到底什么毛病?
- Oracle 事务概述
- boost::mp11::mp_insert_c相关用法的测试程序
- [py][mx]django form验证-给db减压
- Excel常用快捷键与打印
- JavaCV音视频开发宝典:录制vp8和vp9编码的webm格式视频,以mp4转webm为例
- 提升update执行效率
- 列宽一字符等于多少厘米_excel表格换算厘米的方法
- 网站被百度提示有风险,该如何解决?网站被黑怎么办?
- 编译orge1.7.0
- JavaFX+Kotlin游戏从入门到放弃:拯救蛇蛇大作战又名454行实现几何数独游戏
- 一款值得使用的会议室管理软件【会议预订小程序】
- 超火的微信小说小程序源码-自带采集带安装教程
- 利用手机距离感应器来切换声音听筒播放或声筒播放
- 基于ATR确定头寸的择时股票量化策略
- ArcHydro介绍
- 室内定位技术WIFI,蓝牙,UWB一较高下,新导智能浅析哪家是王者
- Winform绘画工具类Graphics
热门文章
- EGO1—使用8选1数据选择器实现四输入逻辑函数 f=∑wxyz(1,3,6,7,11,13,14)
- 【鸿蒙】鸿蒙操作系统应用开发入门级初体验
- MyIE2变Maxthon就来了(转)
- pdo mysql 安装 zval_macos下编译安装php5.2.17步骤
- 六、RTMP协议 时间戳
- 给定一个整数,判断它能否被3,5,7整除,并输出以下信息:
- 智能建筑中高低压配电设备集成监控和管理系统应用分析-李亚俊
- 如何使用python编程解决生活中的问题-日常工作问题处理中Python程序的运用
- cmu 445 poject 2笔记
- 量子力学是不完备的?