本文最先发布在:https://www.itcoder.tech/posts/how-to-i ... ntu-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 -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
代码: 全选
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Tomcat 二进制发行版在 Tomcat 下载页面可以下载。
就在写作的时候,最新的 Tomcat 版本是
代码: 全选
9.0.35
使用
代码: 全选
wget
代码: 全选
/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
代码: 全选
/opt/tomcat
代码: 全选
sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
代码: 全选
latest
代码: 全选
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
前面创建的系统用户必须对 tomcat 安装目录有访问权限。修改目录归属到用户和用户组 tomcat:
代码: 全选
sudo chown -R tomcat: /opt/tomcat
代码: 全选
bin
代码: 全选
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
四、创建 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=forking
User=tomcat
Group=tomcat
Environment="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_HOME
保存并且关闭文件,通知 systemd 一个新的单元文件存在:
代码: 全选
sudo systemctl daemon-reload
代码: 全选
sudo systemctl enable --now tomcat
代码: 全选
sudo systemctl status tomcat
代码: 全选
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-05-25 17:58:37 UTC; 4s ago
Process: 5342 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 5362 (java)
...
代码: 全选
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
如果你的服务器被防火墙保护,并且你想从外面访问你的Tomcat,你需要打开
代码: 全选
8080
使用下面的命令打开必要的端口:
代码: 全选
sudo ufw allow 8080/tcp
代码: 全选
8080
六、配置 Tomcat 网页管理界面
正在此时,你应该通过一个浏览器在8080端口访问 Tomcat。网页管理界面不能访问,因为我们还没有创建一个用户。
Tomcat 用户和角色被定义在
代码: 全选
tomcat-users.xml
在这个例子中,我们将会创建一个用户“admin-gui” 和 “manager-gui” 角色。这个 “admin-gui”角色允许用户访问
代码: 全选
/host-manager/html
代码: 全选
/host-manager/html
打开
代码: 全选
tomcat-users.xml
<!--ad-->
代码: 全选
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
代码: 全选
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 是
代码: 全选
41.41.41.41
代码: 全选
<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>
代码: 全选
|
一旦完成,重启 Tomcat 服务,使应用生效:
代码: 全选
sudo systemctl restart 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