在 CentOS 7/Fedora 38/37/36/35/34 上安装 Apache Tomcat 9
今天我们将了解如何在 CentOS 7/Fedora 38/37/36/35/34/33 上安装 Apache Tomcat 9。 Tomcat Server 是一个开源 Java Servlet 容器,由 Apache Software Foundation (ASF) 开发,并根据 Apache 许可证版本 2 发布。此工具使您能够托管用 Java 编写的 Web 应用程序。 Tomcat 执行 Java servlet 并呈现包含 Java Server Page 编码的网页。
Tomcat 9 构建在最新的 Java EE 8 规范(例如 Servlet 4.0、EL 3.1、JSP 2.4 和 WebSocket 1.2)之上。以下是在 CentOS 7/Fedora 上安装 Apache Tomcat 9 的步骤。
步骤1:禁用SELinux并安装curl
由于我们将以 tomcat 用户身份运行 tomcat 服务,因此请禁用 SELinux 或将其设置为宽松模式:
sudo yum -y install curl vim wget
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
要完全禁用它,请运行:
sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
sudo reboot
第 2 步:安装 OpenJDK 11
第一步是在 CentOS 7/Fedora 上安装 OpenJDK 11,因为它是 Tomcat 依赖项。我之前写过一篇关于如何在 CentOS 7/Fedora 上安装 JDK 的文章。文章的链接是:
- 如何在 CentOS 7/Fedora 上安装 Java 11
步骤 3:安装 Apache Tomcat 9
安装 OpenJDK 11 后,继续在 CentOS 7/Fedora 上下载并安装 Tomcat 9。下载之前,请从 Apache 网站检查 Tomcat 9 的最新版本。
export VER="9.0.74"
wget https://archive.apache.org/dist/tomcat/tomcat-9/v${VER}/bin/apache-tomcat-${VER}.tar.gz
提取下载的文件:
tar xvf apache-tomcat-$VER.tar.gz
将生成的文件夹移动到 /usr/libexec/tomcat9
sudo mv apache-tomcat-${VER} /usr/libexec/tomcat9
第四步:添加Tomcat用户和组
我们需要添加一个用户来管理Tomcat。该用户将被命名为 tomcat
sudo groupadd --system tomcat
sudo useradd -M -d /usr/libexec/tomcat9 -g tomcat tomcat
将 /usr/libexec/tomcat9
目录的所有权更改为 tomcat 用户和组。
sudo chown -R tomcat:tomcat /usr/libexec/tomcat9
第5步:创建Tomcat Systemd服务
最后一步是为 tomcat 创建服务单元文件。在以下位置创建一个新文件:
sudo tee /etc/systemd/system/tomcat9.service<<EOF
[Unit]
Description=Apache Tomcat 9
Documentation=http://tomcat.apache.org/tomcat-9.0-doc/
After=network.target syslog.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
ExecStart=/usr/libexec/tomcat9/bin/startup.sh
ExecStop=/usr/libexec/tomcat9/bin/shutdown.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
重新加载 systemd 并启动 tomcat9
服务:
sudo systemctl daemon-reload
sudo systemctl restart tomcat9.service
您可以使用以下方式检查服务状态:
$ sudo systemctl status tomcat9.service
● tomcat9.service - Apache Tomcat 9
Loaded: loaded (/etc/systemd/system/tomcat9.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2018-11-10 06:34:50 UTC; 4min 15s ago
Docs: http://tomcat.apache.org/tomcat-9.0-doc/
Process: 3226 ExecStart=/usr/libexec/tomcat9/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 3226 (code=exited, status=0/SUCCESS)
Tasks: 43 (limit: 1149)
Memory: 81.5M
CGroup: /system.slice/tomcat9.service
└─3241 /usr/bin/java -Djava.util.logging.config.file=/usr/libexec/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.j>
Nov 10 06:34:50 fed29 systemd[1]: Starting Apache Tomcat 9...
Nov 10 06:34:50 fed29 startup.sh[3226]: Tomcat started.
Nov 10 06:34:50 fed29 systemd[1]: Started Apache Tomcat 9.
该服务应该侦听端口 8080
$ sudo ss -tunelp | grep 8080
tcp LISTEN 0 100 *:8080 *:* users:(("java",pid=3241,fd=37)) uid:1001 ino:29845 sk:a v6only:0 <->
如果您有活动的防火墙服务,请允许端口 8080
sudo firewall-cmd --add-port=8080/tcp
sudo firewall-cmd --reload
Tomcat 默认网站位于 [http://(服务器的主机名或 IP 地址):8080/]
管理指南位于http://
。
第6步:使用Apache HTTP服务器代理访问Tomcat(可选)
您可以配置 Apache http 服务器来访问 Tomcat 接口,而无需指定端口 8080
安装并启动 Apache Web 服务器。
sudo yum -y install httpd
sudo systemctl start httpd && sudo systemctl enable httpd
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
创建tomcat配置文件
sudo vim /etc/httpd/conf.d/proxy_tomcat.conf
添加 :
ProxyPass /tomcat9/ ajp://localhost:8009/
访问 [http://(服务器的主机名或 IP 地址)/tomcat9/]
并确认更改是否按预期工作。
第7步:配置身份验证
创建Tomcat用户来访问Tomcat管理器
sudo vim /usr/libexec/tomcat9/conf/tomcat-users.xml
将以下行添加到文件中:
<role rolename="admin-gui" />
<user username="admin" password="StrongPassword" roles="manager-gui,admin-gui"
</tomcat-users>
将 StrongPassword 替换为您的强实际管理员密码。
其他文章:
- 如何在 Linux 上使用 Systemd 运行 Java Jar 应用程序
- 如何在 Ubuntu 上使用 Systemd 安装元数据库