步骤 1. 安装 Java 8

Apache Tomcat 9 需要在服务器上安装 Java 8 或者更新版本。
Java 8 软件包在默认的 CentOS 7 存储库中可用。
运行以下命令安装 Java 8

# yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

安装完成后,我们可以使用以下命令检查安装的版本:

# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
如何在 CentOS 7/RHEL 7 上安装 Apache Tomcat 9 服务器

Apache Tomcat 是一个 Web 服务器和 servlet 容器,用于为 Java 应用程序提供服务。

Apache Tomcat 是 Java Servlet 和 JavaServer Pages 技术的开源实现,由 Apache Software Foundation 发布。

步骤 3. 配置 Apache Tomcat Web 管理界面

默认情况下,我们无法访问 Apache Tomcat Web 管理界面,因为我们还没有创建用户。
Apache Tomcat 用户及其角色在 tomcat-users.xml 文件中定义。
打开 tomcat-users.xml 文件并添加以下几行:

# vi /opt/tomcat/conf/tomcat-users.xml
<tomcat-users>
<!-
    Comments
-->
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="PASSWORD_CHANGE_ME" roles="admin-gui,manager-gui"/>
</tomcat-users>

默认情况下,Apache Tomcat Web 管理界面配置为仅允许从 localhost 访问。
如果我们希望能够从远程 IP 或者从不推荐的任何地方访问 Web 界面,因为它存在安全风险,我们可以打开以下文件并进行以下更改。

# vi /opt/tomcat/webapps/manager/META-INF/context.xml
 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.1.*" />
# vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.1.*" />

在此配置中,我们允许来自子网 192.168.1.* 的任何 IP 访问 Apache Tomcat Web 管理界面。

最后重新启动 Apache Tomcat 服务器守护进程:

# systemctl restart tomcat

步骤 2. 安装 Tomcat 9

转到官方 Apache Tomcat 网站并将最新版本的软件下载到服务器。
目前最新版本是 9.0.34 版,这里

# VERSION=9.0.34
# wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz

使用以下命令解压下载的 Apache Tomcat 存档:

# tar -xzvf apache-tomcat-${VERSION}.tar.gz -C /opt

让我们将目录重命名为更简单的名称,如下所示:

# cd /opt
#  mv apache-tomcat-${VERSION} tomcat

不建议以root用户运行Apache Tomcat,因此我们将创建一个新的系统用户来运行Apache Tomcat服务器

# groupadd tomcat
# useradd -g tomcat -d /opt/tomcat -s /bin/nologin tomcat
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

创建 Apache Tomcat 用户后,让我们更改所有 Apache Tomcat 文件的所有权,如下所示:

# chown -R tomcat:tomcat /opt/tomcat/

使用以下内容创建一个 systemd 文件:

# vi /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat 9
After=syslog.target network.target
[Service]
User=tomcat
Group=tomcat
Type=forking
Environment=CATALINA_PID=/opt/tomcat/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install] 
WantedBy=multi-user.target

现在,我们可以使用以下命令启动 Apache Tomcat 9 服务器并使其在引导时启动:

# systemctl daemon-reload
# systemctl enable tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /etc/systemd/system/tomcat.service.
# systemctl start tomcat

Apache Tomcat 默认监听端口 8080 。
在访问 Apache Tomcat 服务器之前,我们需要调整防火墙以允许我们的请求到达服务。
使用以下命令:

# firewall-cmd --zone=public --permanent --add-port=8080/tcp
# firewall-cmd --reload

我们现在应该能够在我们喜欢的 Web 浏览器中访问 Apache Tomcat 服务器。
打开浏览器并导航到 http://IP_address:8080,我们将看到 Apache Tomcat 的主页如下。

日期:2020-06-02 22:18:50 来源:oir作者:oir