按照本教程学习如何安装 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