热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Tomcat安装、配置和部署笔记

原文:http:www.cnblogs.comJohnessarchive201207202600937.html首先从Apache的官方网站(http:tomca

原文:http://www.cnblogs.com/Johness/archive/2012/07/20/2600937.html

首先从Apache的官方网站(http://tomcat.apache.org/)下载Tomcat。有安装版和解压版两种,我个人喜欢用解压版。


Tomcat安装(绿色版安装)

  1、将下载的Tomcat解压到指定目录,如:D:\WorkSpaceByJava\DevtTools\Apache-Tomcat-8.0.23

   2、Tomcat的目录结构

      bin:目录存放一些启动运行Tomcat的可执行程序和相关内容。            

      conf:存放关于Tomcat服务器的全局配置。      

             lib:目录存放Tomcat运行或者站点运行所需的jar包,所有在此Tomcat上的站点共享这些jar包。      

             logs: 存放日志文件

             temp:  存放临时文件

      wabapps:目录是默认的站点根目录,可以更改。      

             work:目录用于在服务器运行时过度资源,简单来说,就是存储jsp、servlet翻译、编译后的结果。      

   其他目录和文件暂时不做介绍。


Tomcat配置

   以下相关配置是在Windows系统下。

   第一、安装JDK,下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html,安装完成后设置系统环境变量

   如:JAVA_HOME:C:\Program Files\Java\jdk1.8.0_45

   第二、注册Tomcat服务,使用控制台控制服务的命令 (Win+R)

           配置Tomcat环境变量

              1、新建变量名:CATALINA_HOME,变量值:D:\WorkSpaceByJava\DevtTools\Apache-Tomcat-8.0.23

              2、打开PATH,添加变量值:%CATALINA_HOME%\lib;%CATALINA_HOME%\bin

   将命令行转入到Tomcat安装Bin目录,例如:D:\WorkSpaceByJava\DevtTools\Apache-Tomcat-8.0.23\bin  ,输入命令:service.bat install   如下图:

   

    输入命令:service.bat remove可以移除注册服务

        Win+R + 命令提示符(管理员)

        启动服务 net Start Tomcat8

        关闭服务 net stop  Tomcat8

        注:  (Tomcat8):是刚刚注册的Tomcat服务名称

        启动Tomcat后: 测试Tomcat安装是否成功时,输入http://localhost:8080到浏览器里

   Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。

Tomcat部署

    Tomcat部署Java Web应用程序有两种方式:静态部署和动态部署。(这里记录的是静态部署的笔记)

         静态部署:指的是服务器启动之前部署Web应用程序,只有当服务器启动之后,Web应用程序才能访问。

         动态部署:指的是服务器启动之后部署web应用程序,而不用重新启动服务器。动态部署要用到服务器提供的manager.war文件。在目录.../webapps/下没有该文件,

                          需重新下载tomcat,否则不能完成以下的功能。

        静态部署分为以下3种方式都可以部署:(以PurpleStoneWeb项目为例说明,PurpleStoneWeb目录假设是D:/WorkSpaceByJava/DevProject/PurpleStoneWeb)

         第一:利用Tomcat自动部署

                   将PurpleStoneWeb目录拷贝到Tomcat的/webapps下,然后启动服务器就可以了,Tomcat启动时将自动加载应用。

                   访问地址如下:http://localhost:8080/PurpleStoneWeb/

                   这种方式比较简单,但是web应用程序必须在webapps目录下。

       Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。

   第二:修改Server.xml文件部署指定项目

         (1)、部署指定路径项目

             这种方式可以不必将PurpleStoneWeb目录拷贝到webapps下,直接在D:/WorkSpaceByJava/DevProject/PurpleStoneWeb部署。

             方法如下,更改Tomcat的conf/server.xml文件,找到以下内容:

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

                                       path ="/PurpleStoneWeb"  

                                                        reloadable ="false"  

                                                        docBase ="D:/WorkSpaceByJava/DevelopmentProject/PurpleStoneWeb"  

                                                        workDir ="D:/WorkSpaceByJava/DevelopmentProject/PurpleStoneWeb/work" 

                                        />

            ...

         

         如果没有Context  节点,请自行添加该节点。

                          path:是访问时的根地址,表示访问的路径;如上述例子中,访问该应用程序地址如下:http://localhost:8080/PurpleStoneWeb/

                          reloadable:表示可以在运行时在classes与lib文件夹下自动加载类包。其中reloadable="false"表示当应用程序中的内容发生更改之后服务器不会自动加载,

                                              这个属性在开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。

                         docbase:表示应用程序的路径,注意斜杠的方向“/”。 docBase可以使用绝对路径,也可以使用相对路径,相对路径相对于webapps。

                         workdir:表示缓存文件的放置地址,是指Tomcat解析Jsp转换为Java文件,并编译为class存放的文件夹,设置在项目文件夹里面,可以避免移植到其他地方首次读取jsp文件需要重新解析 。

                                        (一般格式:项目文件夹/work)

      (2)、修改Tomcat默认监听端口

             方法如下,更改$CATALINA_HOME/conf/server.xml文件,找到以下内容:

                       

             protocol="HTTP/1.1"                      

             connectionTimeout="20000"        
             redirectPort="8443"

        />

         port:作为一个网络server端,它需要暴露一个socket端口来accept客户端的链接,可以通过port指定。即Tomcat的监听端口。

                       protocol:使用的网络协议,表示tomcat使用何种方式来接受和处理client端请求,"HTTP/1.1"是默认值,等效"org.apache.coyote.http11.Http11Protocol";

                                        还有熟悉的"AJP/1.3";关于HTTP和AJP两种方式的区别和性能优劣可以参见其他文档.    

                                        在Tomcat 6.0之后,还提供了NIO的方式,可以有效的提升性能,特别是在大量长连接/数据上传+下载等web应用中.

              此时portocal="org.apache.coyote.http11.Http11NioProtocol".

        connectionTimeout: 指定超时的时间数( 以毫秒为单位)

                       redirectPort:指定服务器正在处理http 请求时收到了一个SSL 传输请求后重定向的端口号

          (3)、修改Tomcat默认页面

              在上面,我们还算是中规中矩,按照常理出牌,谢了index.html。那么如果没有写呢?Tomcat会怎么做呢?

              请大家找到conf/web.xml。这个文件是对所有站点的共同属性做出了设置。比如大家看文件结尾处:

        
        index.html
        index.htm
        index.jsp
        

      这个叫做欢迎页面,当没有输入资源地址时,会由上至下地查找,获取页面,进行响应。

      很清楚了吧,改动它就可以,但是不建议在这里改,会是所有站点设置变化,你应该将其复制到你需要改动的站点下的web.xml,进行设置。

Tomcat几个问题处理

  1、启动Tomcat

             Tomcat的启动是一个bat文件,在bin目录下,双击即可。但是首次安装Tomcat时必须告诉Tomcat您安装的JDK路径,不然是启动不起来的。

    一般的情况是控制台出来一下立即消失,说明Tomcat没有找到Java的运行时环境。

  2、根据以上配置好自己的Tomcat后

  测试:http://localhost:8051/PurpleStoneWeb/

  出现错误:

  HTTP Status 404 - /studystruts/



  typeStatus report

  message/studystruts/

  descriptionThe requested resource (/studystruts/) is not available.

       解决方法:/conf/web.xml配置如下:

   
        default
        org.apache.catalina.servlets.DefaultServlet
       
            debug
            0
       

       
            listings
            false
       

        1
   

将其中的

  
       listings
       true
  

          原因:Tomcat8默认是关闭了目录浏览功能的,这个主要是出于安全性的考虑。

   3、让tomcat只运行conf/server.xml中指定的web应用

      可以有以下2种办法:

       实现一: 

     1)将要部署的WEB应用放在webapps以外的路径, 并在server.xml相应的Context  中的docBase 指定. 

     2)删除webapps中的所有文件夹, 以及conf/catalina/localhost下所有xml文件. 

     注: webapps是server.xml中的Host  元素的appBase 属性的值.

      实现二: 

    修改server.xml中Host  元素的属性, 添加或修改: deployXML ="false" deployOnStartup ="false" autoDeploy="false"

    deployXML ="false" : 不部署conf/catalina/localhost下的xml相应的WEB应用

    deployOnStartup ="false" :tomcat启动时, 不部署webapps下的所有web应用

    autoDeploy ="false"  :避免tomcat在扫描改动时, 再次把webapps下的web应用给部署进来.

        4、Tomcat中webapps目录下不能直接存放网页格式的文件,否则无法访问到该文件,必须有子目录才能访问该网页文件

    例如:我们直接将index.html放在webapps目录中,通过浏览器http://localhost:8051/index.html 是无法访问到index.html的。

     而必须要webapps/PurpleStoneWeb/index.html才可以通过http://localhost:8051/PurpleStoneWeb/Index.htm 访问到index.htm页面。

 


推荐阅读
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 利用Python与Android进行高效移动应用开发
    通过结合Python和Android,可以实现高效的移动应用开发。首先,需要安装Scripting Layer for Android (SL4A),这是一个开源项目,旨在为Android系统提供脚本语言支持。SL4A不仅简化了开发流程,还允许开发者使用Python等高级语言编写脚本,从而提高开发效率和代码可维护性。此外,SL4A还支持多种其他脚本语言,进一步扩展了其应用范围。通过这种方式,开发者可以快速构建功能丰富的移动应用,同时保持较高的灵活性和可扩展性。 ... [详细]
  • 在处理大图片时,PHP 常常会遇到内存溢出的问题。为了避免这种情况,建议避免使用 `setImageBitmap`、`setImageResource` 或 `BitmapFactory.decodeResource` 等方法直接加载大图。这些函数在处理大图片时会消耗大量内存,导致应用崩溃。推荐采用分块处理、图像压缩和缓存机制等策略,以优化内存使用并提高处理效率。此外,可以考虑使用第三方库如 ImageMagick 或 GD 库来处理大图片,这些库提供了更高效的内存管理和图像处理功能。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • 本文深入剖析了jQuery的架构设计与实现原理。jQuery的总体结构采用了一个自执行匿名函数的形式,该函数接收`window`和`undefined`作为参数,并在内部定义了一个局部的jQuery副本,以确保其内部变量和方法不会污染全局命名空间。这种设计不仅提高了代码的封装性和安全性,还使得jQuery能够更好地与其他JavaScript库兼容。通过详细分析这一架构,读者可以更好地理解jQuery的核心机制及其高效运行的原理。 ... [详细]
  • 基于域名、端口和IP的虚拟主机构建方案
    本文探讨了在单台物理服务器上构建多个Web站点的虚拟主机方案,详细介绍了三种主要的虚拟主机类型:基于域名、基于IP地址和基于端口的虚拟主机。每种类型的实现方式及其优缺点均进行了深入分析,为实际应用提供了全面的技术指导。 ... [详细]
  • 在Ubuntu 13.04系统中,如果希望移除OpenJDK以优化Java环境配置,但尝试卸载`openjdk-7-jre`时遇到了问题。具体命令 `$ sudo apt-get purge openjdk-7-jre` 会显示如下提示信息: ... [详细]
  • jQuery Flot 数据可视化插件:高效绘制图表的专业工具
    jQuery Flot 是一款高效的数据可视化插件,专为绘制各种图表而设计。该工具支持丰富的图表类型和自定义选项,适用于多种应用场景。用户可以通过其官方网站获取示例代码和下载资源,以便快速上手和使用。 ... [详细]
author-avatar
小鱼儿r6K2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有