安装 Apache Rocky Linux 8 上的 Tomcat

按照本教程学习如何安装 Apache Rocky Linux 8 上的 Tomcat。 Apache Tomcat 是一个基于 Java 的开源 HTTP Web 服务器,它实现了 Java Servlet、JavaServer Pages、Java 表达式语言和 Java WebSocket 技术。

安装 Apache Rocky Linux 8 上的 Tomcat

在 Rocky Linux 8 上安装 OpenJDK

Apache Tomcat 需要 Java 标准版运行时环境 (JRE) 版本 8 或更高版本。 由于 OpenJDK 11 运行时环境在默认 Rocky Linux 存储库上可用,因此我们将安装它。 我们安装了其他包,包括 wget 和 tar,稍后将在指南中使用它们。

dnf install java-11-openjdk wget tar

安装完成后,您可以运行以下命令来验证版本。

java -version
openjdk version "11.0.12" 2021-07-20 LTS OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)

下载 Apache Tomcat 二进制分发版

导航 Apache Tomcat下载页面并抓取 Apache Tomcat 二进制分发包。 在撰写本文时, Apache Tomcat 10.0.8 是当前的稳定版本。

wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.8/bin/apache-tomcat-10.0.8.tar.gz

安装 Apache Rocky Linux 8 上的 Tomcat

二进制分发包下载完成后,安装 Apache 使用二进制分发版的 Tomcat 就像将其解压缩到某个特定目录一样简单,在这种情况下,我们使用 /opt/tomcat 目录。

mkdir /opt/tomcat
tar xzf apache-tomcat-10.0.8.tar.gz -C /opt/tomcat --strip-components=1

上面的命令将apache-tomcat-9.0.36.tar.gz tarball的内容解压到安装目录, /opt/tomcat.

ls -1 /opt/tomcat/
bin BUILDING.txt conf CONTRIBUTING.md lib LICENSE logs NOTICE README.md RELEASE-NOTES RUNNING.txt temp webapps work 

放 Apache Tomcat 环境变量

Tomcat 启动脚本使用各种环境变量来准备运行 Tomcat 守护程序的命令。

CATALINA_HOME 环境变量指向Tomcat安装的基本路径,在本例中是, /opt/tomcat.

echo ' CATALINA_HOME="/opt/tomcat"' > /etc/profile.d/tomcat.sh

根据安装的 Java 包,设置 JRE_HOME (如果您安装了 JRE)或 JAVA_HOME (如果您安装了 JDK)已安装的 Java 版本的环境变量。

由于我们安装了 JDK,因此创建 JAVA_HOME 环境如下。

使用以下命令找到已安装 Java 版本的路径 alternatives 命令。

alternatives --list | grep java
java                	auto  	/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64/bin/java jre_openjdk         	auto  	/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64 jre_11              	auto  	/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64 

从我们上面的输出来看,路径是 /usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64.

获得路径后,创建环境变量。

echo ' JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64"' >> /etc/profile.d/tomcat.sh

重新加载上面设置的环境变量。

source /etc/profile.d/tomcat.sh

创建 Apache Tomcat系统用户

就像任何其他网络服务器一样, Apache Tomcat 不应以特权用户运行。 因此,创建一个系统用户 Apache Tomcat如下;

useradd -r -d /opt/tomcat/ -s /bin/false -c "Apach Tomcat User" tomcat

接下来需要将Tomcat目录的用户和组所有权设置为 tomcat 用户。

chown -R tomcat: /opt/tomcat/

配置 Tomcat Web 管理帐户

创建Tomcat Web管理用户

为 Tomcat Admin/Manager User 界面的 web 管理定义一个用户。

这可以通过编辑 /opt/tomcat/conf/tomcat-users.xml 文件并在下面添加以下突出显示的行 </tomcat-users> 标签。

vim /opt/tomcat/conf/tomcat-users.xml
<tomcat-users ... <!--   <role rolename="tomcat"/>   <role rolename="role1"/>   <user username="tomcat" password="must-be-changed" roles="tomcat"/>   <user username="both" password="must-be-changed" roles="tomcat,role1"/>   <user username="role1" password="must-be-changed" roles="role1"/> -->   <role rolename="admin-gui"/>   <role rolename="manager-gui"/>   <user username="admin" password="[email protected]" roles="admin-gui,manager-gui"/> </tomcat-users> 

相应地替换密码和用户名。

配置 Tomcat 以允许远程连接到 Manager 和 Host Manager 应用程序。

分别为 Manager 和 Host Manager 编辑下面的配置文件,并输入您正在访问 Tomcat 的远程服务器的 IP 地址。 IP 由管道分隔, |.

在这种情况下, 192.168.60.1, 是允许Tomcat访问的服务器IP地址。

经理更新;

vim /opt/tomcat/webapps/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|192.168.60.1" /> ... </Context>

主机管理器更新;

vim /opt/tomcat/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|192.168.60.1" /> ... </Context>

Save 修改完成后退出配置文件。

允许Tomcat通过防火墙

要允许外部访问 Tomcat,需要在 Firewalld 上打开 TCP 端口 8080,如果它正在运行;

firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --reload

在 Rocky Linux 8 上运行 Tomcat

跑步 Apache Tomcat 在独立模式下,执行 /opt/tomcat/bin/startup.sh. 脚本。

/opt/tomcat/bin/startup.sh

样本输出;

Using CATALINA_BASE:   /opt/tomcat Using CATALINA_HOME:   /opt/tomcat Using CATALINA_TMPDIR: /opt/tomcat/temp Using JRE_HOME:        /usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64 Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS:    Tomcat started. 

检查 catalina.out 日志文件或下的任何其他日志文件 /opt/tomcat/logs/*.

尾/opt/tomcat/logs/catalina.out

26-Jul-2021 18:16:57.225 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/tomcat/webapps/docs] 26-Jul-2021 18:16:57.259 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/tomcat/webapps/docs] has finished in [34] ms 26-Jul-2021 18:16:57.259 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/tomcat/webapps/examples] 26-Jul-2021 18:16:57.992 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/tomcat/webapps/examples] has finished in [733] ms 26-Jul-2021 18:16:57.993 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/tomcat/webapps/host-manager] 26-Jul-2021 18:16:58.042 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/tomcat/webapps/host-manager] has finished in [49] ms 26-Jul-2021 18:16:58.043 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/tomcat/webapps/manager] 26-Jul-2021 18:16:58.063 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/tomcat/webapps/manager] has finished in [21] ms 26-Jul-2021 18:16:58.084 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 26-Jul-2021 18:16:58.129 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1865] milliseconds 

访问Tomcat Web界面

您现在可以访问您的 Apache 使用地址从浏览器访问 tomcat, https://server-hostname-or-ip:8080.

点击 经理应用程序 访问 Tomcat Web 应用程序管理器。 当提示输入凭据时,请使用您在上面设置的凭据;

点击 主机管理器, 访问Tomcat虚拟主机管理器。

跑步 Apache Tomcat 即服务

为了能够运行 Apache tomcat 作为服务并确保它在系统重新启动时运行,您需要创建一个 systemd 服务单元文件,如下所示。

cat > /etc/systemd/system/tomcat.service << 'EOL' [Unit] Description=Apache Tomcat Server After=syslog.target network.target  [Service] Type=forking User=tomcat Group=tomcat  Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat  ExecStart=/opt/tomcat/bin/catalina.sh start ExecStop=/opt/tomcat/bin/catalina.sh stop  RestartSec=10 Restart=always [Install] WantedBy=multi-user.target EOL 

根据您的安装相应地替换路径。 Save 并退出文件。

重新加载 systemd 配置

systemctl daemon-reload

停止上面脚本启动的初始tomcat, /opt/tomcat/bin/startup.sh.

ps aux | grep tomcat | grep -v grep | awk '{print $2}' | xargs -I {} kill -9 {}

重置日志目录的所有权;

chown -R tomcat: /opt/tomcat/logs/

启动并启用Tomcat systemd服务;

systemctl enable --now tomcat

检查状态;

systemctl status tomcat
● tomcat.service - Apache Tomcat Server    Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)    Active: active (running) since Mon 2021-07-26 18:37:15 EAT; 1s ago   Process: 4812 ExecStart=/opt/tomcat/bin/catalina.sh start (code=exited, status=0/SUCCESS)  Main PID: 4823 (java)     Tasks: 14 (limit: 4938)    Memory: 54.6M    CGroup: /system.slice/tomcat.service            └─4823 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk>  Jul 26 18:37:15 rocky8.kifarunix-demo.com systemd[1]: Starting Apache Tomcat Server... Jul 26 18:37:15 rocky8.kifarunix-demo.com systemd[1]: Started Apache Tomcat Server.  

这标志着我们关于如何安装的指南的结束 Apache Rocky Linux 8 上的 Tomcat。

参考

Apache Tomcat.10 文档 -RUNNING.txt

相关教程

安装 Apache Rocky Linux 8 上的鳄梨酱

安装 Apache Ubuntu 20.04 上的 Tomcat 9

安装 Apache Debian 10/Debian 9 上的 Tomcat 9