如何在 CentOS 7.3 上安装 Apache Tomcat 8.5
本教程适用于这些操作系统版本
- CentOS 7.3
- CentOS 7
在此页
- 第 1 步 - 安装 Java(JRE 和 JDK)
- 第 2 步 - 配置 Java 主环境
- 第 3 步 - 安装 Apache Tomcat 8.5
- 第 4 步 - 测试 Apache Tomcat
- 第 5 步 - 设置 Apache Tomcat 服务
- 第 6 步 - 配置 Apache Tomcat 用户
- 第 7 步 - 配置防火墙
- 第 8 步 - 测试
- 链接
Apache Tomcat 是由 Apache 软件基金会开发的开源 Java Servlet 实现。除了 Java Servlet 之外,Tomcat 还实现了其他几种 Java 服务器技术,包括 JavaServer Pages (JSP)、Java 表达式语言和 Java WebSocket。 Tomcat 为 Java 应用程序提供 HTTP Web 服务器,支持 HTTP/2、用于 JSSE 的 OpenSSL 和 TLS 虚拟主机。
在本教程中,我将向您展示如何在 CentOS 7 服务器上安装和配置 Apache Tomcat 8.5,以及如何在 CentOS 服务器上安装和配置 Java,这是 Tomcat 的先决条件之一。
先决条件
- 装有 CentOS 7 的服务器 - 64 位
- 2 GB 或更多 RAM(推荐)
- 服务器上的根权限
第 1 步 - 安装 Java(JRE 和 JDK)
在此步骤中,我们将从 CentOS 存储库安装 Java JRE 和 JDK。我们将使用 yum 命令在服务器上安装 Java 1.8.11。
运行此命令以使用 yum 从 CentOS 存储库安装 Java JRE 和 JDK:
yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
这需要一些时间,请等待安装完成。
然后您应该使用以下命令检查 Java 版本:
java -version
您应该会看到类似于以下内容的结果:
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-b15)
OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)

第 2 步 - 配置 Java 主环境
在第一步中,我们安装了 Java。现在我们需要在CentOS服务器上配置JAVA_HOME环境变量,以便Java应用程序能够找到合适的Java版本,而Tomcat需要正确设置JAVA_HOME环境,所以我们需要配置它。
在我们配置JAVA_HOME环境之前,我们需要知道Java目录在哪里。使用以下命令检查 Java 目录:
sudo update-alternatives --config java
Java 目录=\/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre\
然后用vim编辑环境文件:
vim /etc/environment
通过添加以下配置来添加 JAVA_HOME 环境变量:
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre"
保存 /etc/environment 文件并退出 vim。
接下来,编辑 .bash_profile 文件并添加 JAVA_HOME 变量:
vim ~/.bash_profile
在文件末尾,粘贴以下配置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
保存文件,然后重新加载 bash_profile 文件。
source ~/.bash_profile
确保没有报错,最后查看JAVA_HOME环境变量:
echo $JAVA_HOME
您将看到 Java 路径目录。

第 3 步 - 安装 Apache Tomcat 8.5
在此步骤中,我们将在用户 tomcat(我们必须首先创建)下安装 Apache Tomcat。
创建名为tomcat的用户和组:
groupadd tomcat
useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
注意:
-s /bin/false=禁用 shell 访问
-g tomcat=将新用户分配给组 tomcat
-d /opt/tomcat=为用户定义主目录
接下来进入/opt目录,使用wget命令下载tomcat:
cd /opt/
wget http://mirror.wanxp.id/apache/tomcat/tomcat-8/v8.5.6/bin/apache-tomcat-8.5.6.tar.gz
提取 Tomcat 并将 apache-tomcat-8.5.6 目录中的所有文件和目录移动到 tomcat 目录。
tar -xzvf apache-tomcat-8.5.6.tar.gz
mv apache-tomcat-8.5.6/* tomcat/
现在将 tomcat 目录的所有者更改为 tomcat 用户和组。
chown -hR tomcat:tomcat tomcat
第 4 步 - 测试 Apache Tomcat
在第3步中,我们安装并配置了tomcat。在此步骤中,我们只想运行一个简短的测试以确保没有错误。
进入tomcat/bin目录,运行命令startup.sh测试Apache Tomcat:
cd /opt/tomcat/bin/
./startup.sh
确保结果是 Tomcat 已启动。
Tomcat 现在正在使用 8080 端口,使用 netstat 命令检查服务器上的开放端口。
netstat -plntu

或者使用网络浏览器访问端口为 8080 的服务器 IP 地址——在我的例子中是 192.168.1.120:8080。您将看到 Apache Tomcat 默认页面。

接下来,停止 Apache Tomcat,因为我们将在最终配置中使用 systemd 服务文件运行 Tomcat。确保 tomcat 目录归 tomcat 用户和组所有。
cd /opt/tomcat/bin/
./shutdown.sh
chown -hR tomcat:tomcat /opt/tomcat/

第 5 步 - 设置 Apache Tomcat 服务
在本教程中,我们将使用 systemd 服务文件以 tomcat 用户身份运行 Apache Tomcat,以便轻松启动和停止服务。所以下一步就是创建一个tomcat.service文件。
转到systemd系统目录并创建一个新文件tomcat.service。
cd /etc/systemd/system/
vim tomcat.service
粘贴下面的配置:
[Unit]
Description=Apache Tomcat 8 Servlet Container
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
保存文件并退出 vim。
重新加载 systemd 守护进程,然后在启动时启动并添加 Apache Tomcat 服务。
systemctl daemon-reload
systemctl start tomcat
systemctl enable tomcat
现在通过检查打开的端口 8080 来检查 tomcat 是否正在运行。
netstat -plntu
并检查 tomcat 状态,确保服务处于活动状态。
systemctl status tomcat

第 6 步 - 配置 Apache Tomcat 用户
在此步骤中,我们将为 Apache Tomcat 配置用户。 Tomcat 已安装,默认运行在 8080 端口,我们可以使用浏览器访问它,但我们还不能访问站点管理器仪表板。要启用和配置 Tomcat 用户,请编辑文件 tomcat-users.xml。
进入tomcat配置目录,用vim编辑tomcat-users.xml文件。
cd /opt/tomcat/conf/
vim tomcat-users.xml
在第 43 行下新建一行并粘贴下面的配置:
<role rolename="manager-gui"/>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
保存文件并退出 vim。
接下来,转到管理器目录并编辑 context.xml 文件。
cd /opt/tomcat/webapps/manager/META-INF/
vim context.xml
注释掉第 19 和 20 行。
<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>
保存文件并退出 vim。
转到主机管理器目录并再次编辑 context.xml 文件。
cd /opt/tomcat/webapps/host-manager/META-INF/
vim context.xml
再次注释掉第 19 和 20 行。
<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>
保存文件并退出,然后重启tomcat。
systemctl restart tomcat
第 7 步 - 配置 Firewalld
在 CentOS 7 中,我们有一个默认的防火墙工具 firewalld。它取代了 iptables 接口并连接到 Netfilter 内核代码。
在此步骤中,我们将启动 firewalld 服务并打开端口 8080,以便我们可以从网络外部访问 Apache Tomcat 服务器。
启动 firewalld 服务并使用 systemctl 命令将其添加为在引导时启动。
systemctl start firewalld
systemctl enable firewalld
接下来,使用firewall-cmd 命令将apache tomcat 端口8080 添加到防火墙,并重新加载firewalld 服务。
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload
检查防火墙中所有服务是否可用,并检查Apache Tomcat 8080端口是否打开。
firewall-cmd --list-ports
firewall-cmd --list-services
Apache Tomcat 端口 8080 可以从网络外部访问,ssh 端口也默认打开。

第 8 步 - 测试
打开您的 Web 浏览器并使用端口 8080 输入您的服务器 IP。您将看到 Apache Tomcat 默认页面。

使用以下 URL 转到经理仪表板:
输入管理员用户名 admin 和密码 mypassword,这是我们在第 5 步中进行的配置。

现在使用以下 URL 转到主机管理器仪表板:
输入您在第 5 步中设置的管理员用户和密码,您将看到 Tomcat 虚拟主机管理器。

Apache Tomcat 8.5 已安装在 CentOS 7 服务器上。
链接
- http://tomcat.apache.org/