Linux -> 安装Tomcat

本文详细介绍了在Linux系统中安装Tomcat的步骤,包括下载Tomcat、上传到虚拟机、配置Tomcat端口及应用映射、创建开机启动脚本,并讲解了如何配置中文版的Tomcat服务器,最后提到了防火墙端口开放和开机自动启动的设置。通过这些步骤,读者可以成功部署并管理自己的Tomcat服务。
摘要由CSDN通过智能技术生成

安装Tomcat

1 下载Tomcat

2 上传虚拟机

  • 上传用到xshell、xftp => 下载
    在这里插入图片描述
  • unzip xxx.zip -d /home/path/tomcat#解压

在这里插入图片描述

  • chmod -R 775 /home/path/tomcat#赋予执行权限

3 配置Tomcat

  • Tomcat是Java语言编写的也是jar包启动的,只要jdk配置完成

  • java -jar命令可以执行,此时就可以启动Tomcat了

  • 配置jdk查看 => Linux安装Java jdk
    在这里插入图片描述

  • /home/path/tomcat/apache-tomcat-9.0.52/bin/startup.sh#使用bin下的sh脚本启动默认配置的Tomcat
    在这里插入图片描述
    在这里插入图片描述

  • /home/path/tomcat/apache-tomcat-9.0.52/bin/shutdown.sh#关闭tomcat,准备自定义配置tomcat

配置Tomcat

  • 修改tomcat启动端口
  • cd /home/path/tomcat/apache-tomcat-9.0.52/conf/#进入配置文件夹找到server.xml
    在这里插入图片描述
  • vi server.xml#编辑修改端口8284 => 中文配置文件,附录自行获取
    在这里插入图片描述
映射tomcat应用文件 => 不需要的不要设置
tomcat可以将前端的html等文件放置 webapps目录下
也可以用映射路径的方式去映射文件路径

在这里插入图片描述

<!-- 
映射路径 => 如果不需要映射请不要添加这个,找不到真实路径会报错。
path: 访问localhost:8080/web/gis/monitor 会去映射的docBase路径下找文件
相当于已经将文件放到了webapps目录下,不用手动将文件放置webapps下面。

docBase: 真实文件存放的位置。

workDir: 存放一些编译的文件,大多都是指jsp编译成class文件。

crossContext: 多个应用部署在一个tomcat时,true表示可以互相照顾。
-->
<!-- 
<Context path="/web/gis/monitor" docBase="/home/sg/sgssjd/ONEMAP/SSJD/web/sfs-gis-monitor" workDir="" crossContext="true" />
<Context path="/web/gis/sdk"     docBase="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-sdk" workDir="" crossContext="true" />
<Context path="/web/gis/manage"  docBase="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-manage" workDir="" crossContext="true" />
<Context path="/web/gis/home" 	 docBase="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-home" workDir="" crossContext="true" />
<Context path="/web/gis/bi"      docBase="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-bi" workDir="" crossContext="true" />
<Context path="/monitor/mis"     docBase="/home/sg/sgssjd/ONEMAP/BASE/web/mis" workDir="" crossContext="true" />
<Context path="/monitor/cdn"     docBase="/home/sg/sgssjd/ONEMAP/BASE/web/cdn" workDir="" crossContext="true" />
<Context path="/home/file"       docBase="/home/sg/sgssjd/ONEMAP/file" reloadable="true" />
<Context path="/web/gis/proxy"   docBase="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-sdk/proxy" 
workDir="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-sdk/proxy/WEB-INF/classes" crossContext="true" />
-->

4 开机启动脚本

  • vi /etc/init.d/tomcat#编辑一个启动脚本,开机自启
  • chkconfig --add tomcat#添加到系统快捷执行脚本中
    • service xxx#用service命令执行创建的脚本
  • chkconfig tomcat on#开机自动执行
#!/bin/sh
# chkconfig: 345 99 10
export JAVA_HOME=/home/path/java/jdk1.8.0_301
export JRE_HOME=/home/path/java/jdk1.8.0_301/jre
export CATALINA_HOME=/home/path/tomcat/apache-tomcat-9.0.52
export CATALINA_BASE=/home/path/tomcat/apache-tomcat-9.0.52
start()
{
        if [ -f $CATALINA_HOME/bin/startup.sh ];
          then
            echo $"启动 Tomcat"
                $CATALINA_HOME/bin/startup.sh
            echo $"启动完成"
        fi
}
stop()
{
        if [ -f $CATALINA_HOME/bin/shutdown.sh ];
          then
            echo $"停止 Tomcat"
                $CATALINA_HOME/bin/shutdown.sh
            echo $"成功停止"
        fi
}
 
case "$1" in
 start) 
        start
        ;;
 stop)  
        stop
        ;;
 restart)
         echo $"重启 Tomcat"
         stop
         sleep 1
         start
         ;;
 *)
         echo $"默认重启 Tomcat"
         stop
         sleep 1
         start
        ;;                                
esac
exit 0
  • service tomcat stop#start/stop/restart => 启动/停止/重启(无参数默认重启)

开放端口

  • 添加指定需要开放的端口:firewall-cmd --add-port=8284/tcp --permanent
  • 重载入添加的端口:firewall-cmd --reload

附录

tomcat中文配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!--
  根据一个或多个贡献者许可协议,许可给Apache软件基金会(ASF)。
  贡献者的许可协议。 有关版权归属的其他信息,请参见随本作品分发的NOTICE文件。
  有关版权所有权的其他信息,请参见随本作品分发的NOTICE文件。
  ASF根据Apache许可证2.0版("许可证")将本文件许可给你。
  ("许可证");除非遵守许可证的规定,否则您不得使用本文件。
  许可证。 你可以在以下网址获得一份许可证的副本

      http://www.apache.org/licenses/LICENSE-2.0

  除非适用的法律要求或以书面形式同意,根据本许可证分发的软件
  许可证下分发的软件是以 "原样 "为基础的。
  没有任何形式的保证或条件,无论是明示还是暗示。
  有关许可证下的权限和限制的具体语言,请参见许可证。
  许可证下的权限和限制。
-->
<!-- 
	 注意:"服务器 "本身并不是一个 "容器",所以你不能在这一层定义诸如 "阀门 "之类的子组件。
     在这一层定义诸如 "阀门 "之类的子组件。
     文档见/docs/config/server.html
 -->
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- 安全监听器。文档见/docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!-- APR库加载器。文档见/docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!-- 防止因使用特定的java/javax API而导致的内存泄漏-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <!-- 全局JNDI资源
       文档:/docs/jndi-resources-howto.html
  -->
  <GlobalNamingResources>
    <!-- 可编辑的用户数据库,也可由
         用户数据库Realm来验证用户。
    -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <!-- 一个 "服务 "是一个或多个 "连接器 "的集合,共享一个 "容器"。
       注意:一个 "服务 "本身不是一个 "容器"。
       所以你不能在这一层定义诸如 "阀门 "之类的子组件。
       文档见/docs/config/service.html
   -->
  <Service name="Catalina">

    <!--连接器可以使用一个共享的执行器,你可以定义一个或多个命名的线程池-->
    <!--
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    -->


    <!-- 一个 "连接器 "代表一个端点,通过它接收请求
         并返回响应。文档在:
         Java HTTP连接器。/docs/config/http.html
         Java AJP连接器。/docs/config/ajp.html
         APR(HTTP/AJP)连接器。/docs/apr.html
         在8080端口上定义一个非SSL/TLS HTTP/1.1连接器
    -->
    <Connector port="8284" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <!-- 一个使用共享线程池的 "连接器"。-->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->
    <!-- 在8443端口定义一个SSL/TLS HTTP/1.1连接器
         这个连接器使用NIO的实现。默认的
         SSLImplementation将取决于是否存在APR/native
         库和AprLifecycleListener的useOpenSSL属性。
         AprLifecycleListener的useOpenSSL属性。
         JSSE或OpenSSL风格的配置都可以被使用,而不需要考虑
         选择的SSL实施方式。下面使用的是JSSE风格的配置。
    -->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->
    <!-- 用HTTP/2定义8443端口的SSL/TLS HTTP/1.1连接器
         这个连接器使用APR/native实现,它总是使用
         OpenSSL用于TLS。
         可以使用JSSE或OpenSSL风格的配置。OpenSSL风格
         风格的配置在下面使用。
    -->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true" >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
                         certificateFile="conf/localhost-rsa-cert.pem"
                         certificateChainFile="conf/localhost-rsa-chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->

    <!-- 在8009端口定义一个AJP 1.3连接器 -->
    <!--
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />
    -->

    <!-- 一个引擎代表(在Catalina内)处理每个请求的入口点。
         每个请求。 Tomcat独立的引擎实现
         分析包含在请求中的HTTP头,并将它们传递给
         到适当的主机(虚拟主机)上。
         文档见/docs/config/engine.html -->

    <!-- 你应该设置jvmRoute以支持通过AJP的负载平衡,即。
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <Engine name="Catalina" defaultHost="localhost">

      <!--关于集群,请看以下文档。
          /docs/cluster-howto.html (简单的方法)
          /docs/config/cluster.html (参考文档) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

      <!-- 使用LockOutRealm来防止试图猜测用户密码的行为
           试图通过暴力攻击来猜测用户密码 -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- 该领域使用在全局JNDI资源中配置的UserDatabase
             资源中配置的 UserDatabase,键为 "UserDatabase"。 任何对该用户数据库进行的编辑
             对这个 UserDatabase 所做的任何编辑都会立即被
             可供 Realm 使用。  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- 单点登录阀,在网络应用之间共享认证
             文档在。/docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- 访问日志处理所有的例子。
             文件在。/docs/config/valve.html
             注意:使用的模式等同于使用pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
               
        <!-- 映射路径 => 如果不需要映射请不要添加这个,找不到真实路径会报错。
              path: 访问localhost:8080/web/gis/monitor 会去映射的docBase路径下找文件
					相当于已经将文件放到了webapps目录下,不用手动将文件放置webapps下面。
			  docBase: 真实文件存放的位置
			  workDir: 存放一些编译的文件,大多都是指jsp编译成class文件。
			  crossContext: 多个应用部署在一个tomcat时,true表示可以互相照顾
              -->
         <!-- 
		<Context path="/web/gis/monitor" docBase="/home/sg/sgssjd/ONEMAP/SSJD/web/sfs-gis-monitor" workDir="" crossContext="true" />
		<Context path="/web/gis/sdk"     docBase="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-sdk" workDir="" crossContext="true" />
		<Context path="/web/gis/manage"  docBase="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-manage" workDir="" crossContext="true" />
		<Context path="/web/gis/home" 	 docBase="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-home" workDir="" crossContext="true" />
		<Context path="/web/gis/bi"      docBase="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-bi" workDir="" crossContext="true" />
		<Context path="/monitor/mis"     docBase="/home/sg/sgssjd/ONEMAP/BASE/web/mis" workDir="" crossContext="true" />
		<Context path="/monitor/cdn"     docBase="/home/sg/sgssjd/ONEMAP/BASE/web/cdn" workDir="" crossContext="true" />
		<Context path="/home/file"       docBase="/home/sg/sgssjd/ONEMAP/file" reloadable="true" />
		<Context path="/web/gis/proxy"   docBase="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-sdk/proxy" 
				workDir="/home/sg/sgssjd/ONEMAP/BASE/web/sfs-gis-sdk/proxy/WEB-INF/classes" crossContext="true" />
				 -->
				
      </Host>
    </Engine>
  </Service>
</Server>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值