一、下载tomcat

打开tomcat下载页面,tomcat10下载页面

如果你 不想做代码的迁移工作,可以选择Tomcat9及其以下的版本。我们这里是为了安装Tomcat,选择Tomcat9作为演示的版本。

二、解压

将下载好的Tomcat上传到指定目录,并解压:

tar -zxvf apache-tomcat-9.0.58.tar.gz

打开对应目录如下图:

三、配置jdk环境变量

# 编辑配置文件
vim /etc/profile

# 输入命令,配置jdk环境变量
export JAVA_HOME=/opt/java/jdk-11
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH

按ESC,然后输入 :wq!  然后输入回车,保存修改的文件。再输入命令使刚才的修改立即生效:

# 使修改立即生效
source /etc/profile

检查jdk配置是否成功:

# 检查jdk版本
java -version

显示如下内容,代表java环境变量配置成功: 

[root@Cent0S8-FTP apache-tomcat-9.0.58]# java -version
openjdk version "1.7.0_75"
OpenJDK Runtime Environment (build 1.7.0_75-b13)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

 如果没有生效,检查是否修改的配置文件是否粗心导致打错字了,或者将你的终端窗口重新打开即可。

四、配置Tomcat环境变量

# 配置Tomcat环境变量
export CATALINA_HOME=/opt/tomcat/apache-tomcat-9.0.58
export PATH=$PATH:$CATALINA_HOME/bin

五、启动Tomcat

在tomcat安装目录下的conf目录下,找到startup.sh脚本并启动:

 我们看到了“Tomcat started”字样,大致代表着Tomcat已经启动了。至于是否成功,我们下面来检测。

六、检测Tomcat启动结果

1.检查java进程是否存在

ps -ef | grep java

结果如下:

 2.查询端口是否有进程守护

netstat -anp | grep 8080

竟然没有任何结果。

3.关于防火墙:

#停止firewall
systemctl stop firewalld.service 
 
#开启firewall
systemctl start firewalld.service
 
#禁止firewall开机启动
systemctl disable firewalld.service 
 
#查看默认防火墙状态(关闭后显示not running,开启后显示running)
firewall-cmd --state 

开启的时候,可能报这个错:

Failed to start firewalld.service: Unit firewalld.service is masked.

可以使用一下命令尝试: 

systemctl unmask firewalld.service

 这部分参考:Linux安装tomcat,配置环境变量

 我们查看防火墙列表:

 firewall-cmd --zone=public --list-ports

 如果我们重新添加8080端口:

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

 说明8080已经开通防火墙。

但是我们本地访问127.0.0.1:8080:

 这就很尴尬了。想了各种办法都没有解决问题,最后想到了日志。我们到logs目录下找到 catalina.out文件:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

 我们可以隐约看到“不支持的类版本错误”,去了解一下之后发现:

报错的原因是JDK版本跟不上。

也就是说jdk版本太低了。这也难怪,我这个jdk版本是1.7,之前是为了在Jboss上试验一个东西,配置成了1.7,现在改成最高的jdk17。

七、重启Tomcat

修改jdk环境变量后,重启Tomcat,即运行Tomcat的bin目录下的startup.sh脚本:

sh startup.sh
# 或者
./startup.sh

启动后:

[root@Cent0S8-FTP logs]# ../bin/startup.sh 
Using CATALINA_BASE:   /opt/tomcat/apache-tomcat-9.0.58
Using CATALINA_HOME:   /opt/tomcat/apache-tomcat-9.0.58
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-9.0.58/temp
Using JRE_HOME:        /opt/java/jdk-17.0.2
Using CLASSPATH:       /opt/tomcat/apache-tomcat-9.0.58/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-9.0.58/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

 查看8080端口网络情况:

 netstat -anp | grep 8080

[root@Cent0S8-FTP logs]# netstat -anp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      932458/java

本地打开http://127.0.0.1:8080/

发现还是之前的错误。

查看日志: catalina.out

java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
04-Feb-2022 01:06:45.131 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.58
04-Feb-2022 01:06:45.137 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建:        Jan 15 2022 14:37:38 UTC
04-Feb-2022 01:06:45.137 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号:      9.0.58.0
04-Feb-2022 01:06:45.137 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称:      Linux
04-Feb-2022 01:06:45.137 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本:           4.18.0-348.2.1.el8_5.x86_64
04-Feb-2022 01:06:45.137 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构:              amd64
04-Feb-2022 01:06:45.138 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量:     /opt/java/jdk-17.0.2
04-Feb-2022 01:06:45.138 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本:    17.0.2+8-LTS-86
04-Feb-2022 01:06:45.138 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商:        Oracle Corporation
04-Feb-2022 01:06:45.138 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:     /opt/tomcat/apache-tomcat-9.0.58
04-Feb-2022 01:06:45.138 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:     /opt/tomcat/apache-tomcat-9.0.58
04-Feb-2022 01:06:45.152 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       --add-opens=java.base/java.lang=ALL-UNNAMED
04-Feb-2022 01:06:45.153 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       --add-opens=java.base/java.io=ALL-UNNAMED
04-Feb-2022 01:06:45.153 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       --add-opens=java.base/java.util=ALL-UNNAMED
04-Feb-2022 01:06:45.153 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
04-Feb-2022 01:06:45.153 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
04-Feb-2022 01:06:45.153 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.util.logging.config.file=/opt/tomcat/apache-tomcat-9.0.58/conf/logging.properties
04-Feb-2022 01:06:45.153 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
04-Feb-2022 01:06:45.153 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djdk.tls.ephemeralDHKeySize=2048
04-Feb-2022 01:06:45.154 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
04-Feb-2022 01:06:45.154 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
04-Feb-2022 01:06:45.154 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dignore.endorsed.dirs=
04-Feb-2022 01:06:45.154 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcatalina.base=/opt/tomcat/apache-tomcat-9.0.58
04-Feb-2022 01:06:45.154 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcatalina.home=/opt/tomcat/apache-tomcat-9.0.58
04-Feb-2022 01:06:45.154 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.io.tmpdir=/opt/tomcat/apache-tomcat-9.0.58/temp
04-Feb-2022 01:06:45.156 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 在java.library.path:[/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib]上找不到基于APR的Apache Tomcat本机库,该库允许在生产环境中获得最佳性能
04-Feb-2022 01:06:45.496 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
04-Feb-2022 01:06:45.523 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[798]毫秒内初始化
04-Feb-2022 01:06:45.566 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
04-Feb-2022 01:06:45.567 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.58]
04-Feb-2022 01:06:45.576 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat/apache-tomcat-9.0.58/webapps/ROOT]
04-Feb-2022 01:06:45.955 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat/apache-tomcat-9.0.58/webapps/ROOT]的部署已在[376]毫秒内完成
04-Feb-2022 01:06:45.956 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat/apache-tomcat-9.0.58/webapps/manager]
04-Feb-2022 01:06:45.995 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat/apache-tomcat-9.0.58/webapps/manager]的部署已在[39]毫秒内完成
04-Feb-2022 01:06:45.995 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat/apache-tomcat-9.0.58/webapps/docs]
04-Feb-2022 01:06:46.127 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat/apache-tomcat-9.0.58/webapps/docs]的部署已在[132]毫秒内完成
04-Feb-2022 01:06:46.128 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat/apache-tomcat-9.0.58/webapps/examples]
04-Feb-2022 01:06:46.352 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat/apache-tomcat-9.0.58/webapps/examples]的部署已在[224]毫秒内完成
04-Feb-2022 01:06:46.352 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat/apache-tomcat-9.0.58/webapps/host-manager]
04-Feb-2022 01:06:46.375 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat/apache-tomcat-9.0.58/webapps/host-manager]的部署已在[23]毫秒内完成
04-Feb-2022 01:06:46.378 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
04-Feb-2022 01:06:46.437 信息 [main] org.apache.catalina.startup.Catalina.start [914]毫秒后服务器启动
[root@Cent0S8-FTP logs]# less catalina.out
[root@Cent0S8-FTP logs]# tail -f catalina.out
04-Feb-2022 01:06:45.956 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat/apache-tomcat-9.0.58/webapps/manager]
04-Feb-2022 01:06:45.995 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat/apache-tomcat-9.0.58/webapps/manager]的部署已在[39]毫秒内完成
04-Feb-2022 01:06:45.995 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat/apache-tomcat-9.0.58/webapps/docs]
04-Feb-2022 01:06:46.127 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat/apache-tomcat-9.0.58/webapps/docs]的部署已在[132]毫秒内完成
04-Feb-2022 01:06:46.128 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat/apache-tomcat-9.0.58/webapps/examples]
04-Feb-2022 01:06:46.352 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat/apache-tomcat-9.0.58/webapps/examples]的部署已在[224]毫秒内完成
04-Feb-2022 01:06:46.352 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat/apache-tomcat-9.0.58/webapps/host-manager]
04-Feb-2022 01:06:46.375 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat/apache-tomcat-9.0.58/webapps/host-manager]的部署已在[23]毫秒内完成
04-Feb-2022 01:06:46.378 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
04-Feb-2022 01:06:46.437 信息 [main] org.apache.catalina.startup.Catalina.start [914]毫秒后服务器启动

 貌似是启动成功了,但是就是访问不了主页。

或者通过查看tomcat进程来检测是否启动成功:

ps -ef | grep tomcat

[fangdake@Cent0S8-FTP ~]$ ps -ef | grep tomcat
root      932458       1  0 07:36 ?        00:00:29 /opt/java/jdk-17.0.2/bin/java -Djava.util.logging.config.file=/opt/tomcat/apache-tomcat-9.0.58/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/tomcat/apache-tomcat-9.0.58/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-9.0.58/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat/apache-tomcat-9.0.58 -Dcatalina.home=/opt/tomcat/apache-tomcat-9.0.58 -Djava.io.tmpdir=/opt/tomcat/apache-tomcat-9.0.58/temp org.apache.catalina.startup.Bootstrap start
fangdake 1714382 1511979  0 11:44 pts/3    00:00:00 grep --color=auto tomcat

这样看不清楚,我们上个图片:

 这样看貌似也是启动成功了。

但是本地访问就是不行,貌似感觉是防火墙的问题。不过为了保险起见,我们再采用一种方式来检测启动成功与否。

curl 192.168.xx.xxx:8080

通过curl ip:端口号的方式在linux中连通,结果如下:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Apache Tomcat/9.0.58</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="tomcat.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
        <div id="wrapper">
            <div id="navigation" class="curved container">
                <span id="nav-home"><a href="https://tomcat.apache.org/">Home</a></span>
                <span id="nav-hosts"><a href="/docs/">Documentation</a></span>
                <span id="nav-config"><a href="/docs/config/">Configuration</a></span>
                <span id="nav-examples"><a href="/examples/">Examples</a></span>
                <span id="nav-wiki"><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></span>
                <span id="nav-lists"><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></span>
                <span id="nav-help"><a href="https://tomcat.apache.org/findhelp.html">Find Help</a></span>
                <br class="separator" />
            </div>
            <div id="asf-box">
                <h1>Apache Tomcat/9.0.58</h1>
            </div>
            <div id="upper" class="curved container">
                <div id="congrats" class="curved container">
                    <h2>If you're seeing this, you've successfully installed Tomcat. Congratulations!</h2>
                </div>
                <div id="notice">
                    <img id="tomcat-logo" src="tomcat.svg" alt="[tomcat logo]" />
                    <div id="tasks">
                        <h3>Recommended Reading:</h3>
                        <h4><a href="/docs/security-howto.html">Security Considerations How-To</a></h4>
                        <h4><a href="/docs/manager-howto.html">Manager Application How-To</a></h4>
                        <h4><a href="/docs/cluster-howto.html">Clustering/Session Replication How-To</a></h4>
                    </div>
                </div>
                <div id="actions">
                    <div class="button">
                        <a class="container shadow" href="/manager/status"><span>Server Status</span></a>
                    </div>
                    <div class="button">
                        <a class="container shadow" href="/manager/html"><span>Manager App</span></a>
                    </div>
                    <div class="button">
                        <a class="container shadow" href="/host-manager/html"><span>Host Manager</span></a>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <div id="middle" class="curved container">
                <h3>Developer Quick Start</h3>
                <div class="col25">
                    <div class="container">
                        <p><a href="/docs/setup.html">Tomcat Setup</a></p>
                        <p><a href="/docs/appdev/">First Web Application</a></p>
                    </div>
                </div>
                <div class="col25">
                    <div class="container">
                        <p><a href="/docs/realm-howto.html">Realms &amp; AAA</a></p>
                        <p><a href="/docs/jndi-datasource-examples-howto.html">JDBC DataSources</a></p>
                    </div>
                </div>
                <div class="col25">
                    <div class="container">
                        <p><a href="/examples/">Examples</a></p>
                    </div>
                </div>
                <div class="col25">
                    <div class="container">
                        <p><a href="https://wiki.apache.org/tomcat/Specifications">Servlet Specifications</a></p>
                        <p><a href="https://wiki.apache.org/tomcat/TomcatVersions">Tomcat Versions</a></p>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <div id="lower">
                <div id="low-manage" class="">
                    <div class="curved container">
                        <h3>Managing Tomcat</h3>
                        <p>For security, access to the <a href="/manager/html">manager webapp</a> is restricted.
                        Users are defined in:</p>
                        <pre>$CATALINA_HOME/conf/tomcat-users.xml</pre>
                        <p>In Tomcat 9.0 access to the manager application is split between
                           different users. &nbsp; <a href="/docs/manager-howto.html">Read more...</a></p>
                        <br />
                        <h4><a href="/docs/RELEASE-NOTES.txt">Release Notes</a></h4>
                        <h4><a href="/docs/changelog.html">Changelog</a></h4>
                        <h4><a href="https://tomcat.apache.org/migration.html">Migration Guide</a></h4>
                        <h4><a href="https://tomcat.apache.org/security.html">Security Notices</a></h4>
                    </div>
                </div>
                <div id="low-docs" class="">
                    <div class="curved container">
                        <h3>Documentation</h3>
                        <h4><a href="/docs/">Tomcat 9.0 Documentation</a></h4>
                        <h4><a href="/docs/config/">Tomcat 9.0 Configuration</a></h4>
                        <h4><a href="https://wiki.apache.org/tomcat/FrontPage">Tomcat Wiki</a></h4>
                        <p>Find additional important configuration information in:</p>
                        <pre>$CATALINA_HOME/RUNNING.txt</pre>
                        <p>Developers may be interested in:</p>
                        <ul>
                            <li><a href="https://tomcat.apache.org/bugreport.html">Tomcat 9.0 Bug Database</a></li>
                            <li><a href="/docs/api/index.html">Tomcat 9.0 JavaDocs</a></li>
                            <li><a href="https://github.com/apache/tomcat/tree/9.0.x">Tomcat 9.0 Git Repository at GitHub</a></li>
                        </ul>
                    </div>
                </div>
                <div id="low-help" class="">
                    <div class="curved container">
                        <h3>Getting Help</h3>
                        <h4><a href="https://tomcat.apache.org/faq/">FAQ</a> and <a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></h4>
                        <p>The following mailing lists are available:</p>
                        <ul>
                            <li id="list-announce"><strong><a href="https://tomcat.apache.org/lists.html#tomcat-announce">tomcat-announce</a><br />
                                Important announcements, releases, security vulnerability notifications. (Low volume).</strong>
                            </li>
                            <li><a href="https://tomcat.apache.org/lists.html#tomcat-users">tomcat-users</a><br />
                                User support and discussion
                            </li>
                            <li><a href="https://tomcat.apache.org/lists.html#taglibs-user">taglibs-user</a><br />
                                User support and discussion for <a href="https://tomcat.apache.org/taglibs/">Apache Taglibs</a>
                            </li>
                            <li><a href="https://tomcat.apache.org/lists.html#tomcat-dev">tomcat-dev</a><br />
                                Development mailing list, including commit messages
                            </li>
                        </ul>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <div id="footer" class="curved container">
                <div class="col20">
                    <div class="container">
                        <h4>Other Downloads</h4>
                        <ul>
                            <li><a href="https://tomcat.apache.org/download-connectors.cgi">Tomcat Connectors</a></li>
                            <li><a href="https://tomcat.apache.org/download-native.cgi">Tomcat Native</a></li>
                            <li><a href="https://tomcat.apache.org/taglibs/">Taglibs</a></li>
                            <li><a href="/docs/deployer-howto.html">Deployer</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Other Documentation</h4>
                        <ul>
                            <li><a href="https://tomcat.apache.org/connectors-doc/">Tomcat Connectors</a></li>
                            <li><a href="https://tomcat.apache.org/connectors-doc/">mod_jk Documentation</a></li>
                            <li><a href="https://tomcat.apache.org/native-doc/">Tomcat Native</a></li>
                            <li><a href="/docs/deployer-howto.html">Deployer</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Get Involved</h4>
                        <ul>
                            <li><a href="https://tomcat.apache.org/getinvolved.html">Overview</a></li>
                            <li><a href="https://tomcat.apache.org/source.html">Source Repositories</a></li>
                            <li><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></li>
                            <li><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Miscellaneous</h4>
                        <ul>
                            <li><a href="https://tomcat.apache.org/contact.html">Contact</a></li>
                            <li><a href="https://tomcat.apache.org/legal.html">Legal</a></li>
                            <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                            <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Apache Software Foundation</h4>
                        <ul>
                            <li><a href="https://tomcat.apache.org/whoweare.html">Who We Are</a></li>
                            <li><a href="https://tomcat.apache.org/heritage.html">Heritage</a></li>
                            <li><a href="https://www.apache.org">Apache Home</a></li>
                            <li><a href="https://tomcat.apache.org/resources.html">Resources</a></li>
                        </ul>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <p class="copyright">Copyright &copy;1999-2022 Apache Software Foundation.  All Rights Reserved</p>
        </div>
    </body>

</html>

 其实就是个HTML页面!我们不能直接在本地访问的话,我们可以把这个页面保存成html,用浏览器打开。

 这个是网页打开后翻译过来的,原版是英文的。至此,我们彻底确定,我们的tomcat是启动成功的了。但是就是在本地无法访问,我们的猜测是防火墙的问题,但是我们之前也打开了8080防火墙,那究竟是什么问题呢?我们接下来去解决这个问题。

八、防火墙

我们上面讲了一下防火墙的问题,现在再重新通过这个防火墙的方式尝试解决这个不能访问的问题。

1.查看防火墙是否启动

firewall-cmd --state

结果如下:

[fangdake@Cent0S8-FTP ~]$ firewall-cmd --state
Authorization failed.
    Make sure polkit agent is running or run the application as superuser.

很明显是用户权限问题,那我们切换到root用户。

# 切换到root用户
su root

# 之后会要求输入root用户的密码

# 然后我们再查看防火墙是否开启
firewall-cmd --state

 结果如下:

很明显,我们看到了running,这就是说防火墙是在运行状态。

当然,如果你的防火墙没有开启的话,那就输入命令来开启防火墙:

systemctl start firewalld

2.查看防火墙开启的端口列表

firewall-cmd --permanent --zone=public --list-ports

结果如下:

[root@Cent0S8-FTP fangdake]# firewall-cmd --permanent --zone=public --list-ports
21/tcp 1025-65535/tcp

 这个21和1025-65535这之间的端口是我之前开通ftp上传文件功能的时候,开通了防火墙,那8080是在1025-65535之间的。如果我们不确定,我们可以添加具体端口去开启防火墙:

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

结果如下:

 意思很明显:

警告:已启用

成功

那就是我们刚才说的没错,1025-65535这个之间的端口都是启动了的,当然包括8080端口。

3.重启防火墙

firewall-cmd --reload

出现success,表示重启成功。

4.验证开启的8080端口是否生效

firewall-cmd --zone=public --query-port=8080/tcp

出现yes代表生效。

5.重启tomcat

据了解,重启tomcat就可以通过centos外面的浏览器访问tomcat了,那我们试试。

 sh shutdown.sh 

结果如下:

[root@Cent0S8-FTP bin]# sh shutdown.sh 
Using CATALINA_BASE:   /opt/tomcat/apache-tomcat-9.0.58
Using CATALINA_HOME:   /opt/tomcat/apache-tomcat-9.0.58
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-9.0.58/temp
Using JRE_HOME:        /opt/java/jdk-17.0.2
Using CLASSPATH:       /opt/tomcat/apache-tomcat-9.0.58/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-9.0.58/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED

6.查看Tomcat是否以关闭

ps -ef| grep java

root     2596068 1786992  0 16:23 pts/3    00:00:00 grep --color=auto java

7.启动Tomcat

sh startup.sh

 或者

./startup.sh

如图:

 8.查看日志

到Tomcat安装目录的logs目录下,打开catalina.out文件,查看日志情况:

 至此,貌似Tomcat又启动成功了。为什么说又呢?因为我们不止一次貌似成功了,但是我们本地打开浏览器,输入127.0.0.1:8080访问被拒绝。我们再试一下:

 

 结果依然是gg,这就有点恶心了。到底什么缘故呢?我们在终端连接的时候是ok的:

 curl 192.168.10.111:8080

结果如下:

下面其他信息就不截图了,上面我们显示过。

这就尴尬了,忙活了半天,正在终端通过curl命令可以,但是本地连接127.0.0.1:8080就是不行。这边再试了一下通过curl  127.0.0.1:8080试试:

我们看到也是ok的。这就有点TMD恶心了。这到底是怎么回事呢?转念一想,我们在本地试试通过ip:8080连接一下Tomcat试试,而不是通过127.0.0.1。如图:

纳尼?这样就可以?这是为什么呢?

到了这里,虽然不能说我们的Tomcat安装完全成功了,但是起码说可以使用了,算是半成品吧!

 

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐