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

关于ApacheTomcat9.0的使用(尤其针对免安装版)

免安装应用或服务能否首次正常运行,一般可通过逻辑推理其配置文件得出结论,若配置文件中存在明显纰漏或潜在危险,则显然无法正常运行,若看不出是否存在,也未必表示就能正常运行。1.Tomcat可以独立地作为

免安装应用或服务能否首次正常运行,一般可通过逻辑推理其配置文件得出结论,若配置文件中存在明显纰漏或潜在危险,则显然无法正常运行,若看不出是否存在,也未必表示就能正常运行。


1.Tomcat可以独立地作为一个服务器,单独启动、关闭,这时需要配置Tomcat的相关环境变量;Tomcat也可以通过Eclipse来启动即在Eclipse中启动外部Tomcat服务器,这时只要Eclipse能正常使用就不再需要配置Tomcat的相关环境变量。


2.在Tomcat的安装目录中有一个“RUNNING.txt”文件,里面详细论述了如何开始使用Servlet/JSP容器Apache Tomcat(包括Tomcat依赖关系的相关细节,Tomcat可能也可以在 任何满足要求的Java早期预先/抢先体验使用版(build)上工作。):下载、安装、配置等。

3.配置(正常使用Tomcat所需的)环境变量:
Tomcat是一个Java程序而且不会直接用到环境变量,但Tomcat的startup脚本需要使用环境变量,该脚本使用环境变量来准备启动Tomcat的命令。


3.1设置CATALINA_HOME(必需的)和CATALINA_BASE(可选的)
环境变量CATALINA_HOME必须被设置为Tomcat发行版中“binary”文件的根目录位置,若缺省CATALINA_HOME,Tomcat的startup脚本将会利用其具有的一些内部逻辑推理方法,基于startup脚本在*nix系统中的位置和在Windows系统中的当前目录,自动地设置上下文相关的CATALINA_HOME变量值,但这个内部逻辑可能无法在所有情境中起作用,因此推荐明确地手动设置该变量。
环境变量CATALINA_BASE则用来指定Tomcat的“active configuration”的根目录位置,该变量是可选的,默认是跟CATALINA_HOME等值的。

为简化以后的更新和维护工作,推荐使用不同的CATALINA_HOME和CATALINA_BASE值(关于这点,它被记录在下面的“多Tomcat实例”部分)。


3.2设置JRE_HOME或JAVA_HOME(必需的)
两个变量用来指定某一个Java Runtime Environment或者Java Development Kit的位置的,注意用来启动不同版本Tomcat的Java Standard Edition Runtime Environment的版本要求不同。

JRE_HOME用来指定JRE的位置,JAVA_HOME用来指定JDK的位置。当已经使用了JRE_HOME时,再使用JAVA_HOME来提供访问某些额外启动项的入口是不被允许的。若JRE_HOME和JAVA_HOME都被指定,使用的是JRE_HOME。推荐使用Tomcat的“setenv”脚本来指定这两个变量的值。


3.3其它变量(可选的)
除了以上描述的四个,其它环境变量也存在,各变量的列表和描述可参看Tomcat的“catalina.bat/catalina.sh”文件顶部的注释。参看(互联网上的)Tomcat Configuration Reference的“System Properties”页面寻求系统属性的信息。类型变量如JAVA_OPTS,它较少使用,允许启动和停止以及其它命令选项的规范。注意不要使用JAVA_OPTS去指定内存限制,你并不需要给启动Tomcat的小进程准备太多的内存空间,这些设置是属于CATALINA_OPTS的。
另一个常用变量是CATALINA_PID(仅限*nix系统),它指定某个文件的位置,这个文件会将fork(分叉,复刻)的Tomcat Java进程的进程号作为内容写入;该设置也是可选的,它将会开启以下功能:更好地防止试图多次重复启动(duplicate start attempts)和在Tomcat进程不能响应标准的关闭命令时允许强制终止。


3.4使用“setenv”脚本(可选、推荐的)
除了CATALINA_HOME和CATALINA_BASE(CATALINA_HOME和CATALINA_BASE不能在setenv脚本中配置,因为它们是用来定位setenv脚本文件的),所有的环境变量都能在“setenv”脚本中被指定,该脚本程序要么放在“CATALINA_BASE/bin”要么就在“CATALINA_HOME/bin”目录中,而且被命名为“setenv.bat”(Windows系统中)或“setenv.sh”(*nix系统中),这个脚本文件必须是可读的。
setenv脚本文件默认是缺省的,若该脚本文件在CATALINA_BASE和CATALINA_HOME中都存在,则CATALINA_BASE中的优先。比如,在配置JRE_HOME和CATALINA_PID时可以创建如下的脚本文件:
在Windows系统中,%CATALINA_BASE%\bin\setenv.bat:
set "JRE_HOME=%ProgramFiles%\Java\jre8"
exit /b 0
而在*nix系统中,$CATALINA_BASE/bin/setenv.sh:
JRE_HOME=/usr/java/latest
CATALINA_PID="$CATALINA_BASE/tomcat.pid"

只有在你使用标准脚本启动Tomcat时,以上描述的所有环境变量和“setenv”脚本才会被使用。例如,你已将Tomcat作为一项服务安装在Windows系统中,服务包装器将会直接启动Java而无需使用脚本文件。


4.启动Tomcat

在Windows系统中,使用命令提示符窗口(Windows Command Prompt窗口,CMD窗口)键入命令来执行可以很清晰地给出命令执行情况的反馈提示,而在Tomcat的%CATALINA_HOME%\bin目录下双击执行命令时,则无法给出反馈(尤其在无法正常执行而需要执行情况的反馈提示以排查问题时,这是非常不好的)。


4.1Tomcat能够通过执行以下任一命令被启动:
Windows系统中:%CATALINA_HOME%\bin\startup.bat或%CATALINA_HOME%\bin\catalina.bat start
*nix系统中:$CATALINA_HOME/bin/startup.sh或$CATALINA_HOME/bin/catalina.sh start

4.2在启动Tomcat之后,Tomcat中包含的默认Web应用程序将会变得可用,通过访问以下地址可验证:http://localhost:8080/

4.3更多关于配置和运行Tomcat的信息可在本文和Tomcat官方网址中找到:http://tomcat.apache.org


5.关闭Tomcat

5.1Tomcat能够通过执行以下任一命令被关闭:

Windows系统中:%CATALINA_HOME%\bin\shutdown.bat或%CATALINA_HOME%\bin\catalina.bat stop
*nix系统中:$CATALINA_HOME/bin/shutdown.sh或$CATALINA_HOME/bin/catalina.sh stop

6.高级配置——多Tomcat实例
在很多情形,同一服务器上的多用户只需共享一份Tomcat二进制分发版的拷贝才是让人满意的。为实现这个可能,你可以将环境变量CATALINA_BASE设置为包含你个人Tomcat实例文件的目录。当运行一个单独分开的CATALINA_HOME和CATALINA_BASE时,相关文件和目录会分成如下情况:
在CATALINA_BASE中:
* bin - 仅指以下文件:
* setenv.sh(*nix)或setenv.bat(Windows),
* tomcat-juli.jar
   tomcat-juli库的相关信息记录在用户指南的logging章节。

  * conf - 服务器配置文件(包含一个server.xml文件)
 * lib - 库和类,as explained below(如下说明的)
 * logs - 日志和输出文件
 * webapps - 自动加载的Web应用程序
 * work - Web应用程序的临时工作目录
 * temp - JVM临时文件java.io.tmpdir使用的目录

在CATALINA_HOME中:
  * bin - 启动和关闭脚本
    只有以下文件在CATALINA_BASE/bin中缺省的情况下,它们才会被使用:
setenv.sh(*nix),setenv.bat(Windows),tomcat-juli.jar

 * lib - 库和类,as explained below(如下说明的)
默认配置下,所有CATALINA_BASE/lib和CATALINA_HOME/lib中的JAR库和类都将会被添加到公共classpath,但是CATALINA_BASE中的将会被先添加并因此优先被搜索到。方法思想是你可能将标准Tomcat库留在CATALINA_HOME/lib中,而把其他库(例如数据库驱动)添加到CATALINA_BASE/lib中。总的来说,应绝不在Web应用程序间共享库,而是将它们放到Web应用程序的WEB-INF/lib目录下。请参考用户指南中的类加载文档以寻求细节详情。
注意到可能有用的是,CATALINA_HOME和CATALINA_BASE的值会在Tomcat处理的XML配置文件中被引用,相对地以${catalina.home}和${catalina.base}的形式。例如,标准管理器Web应用程序能被置于CATALINA_HOME/webapps/manager下,然后通过使用以下技巧就可以被加载到CATALINA_BASE:
* 复制CATALINA_HOME/webapps/manager/META-INF/context.xml文件的内容到CATALINA_BASE/conf/Catalina/localhost/manager.xml
* 依照如下呈现的样子添加docBase属性。文件将会形如:
  
antiResourceLocking="false" privileged="true" >
allow="127\.0\.0\.1" />
关于上下文语境和Web应用程序部署的更多信息,请参看用户指南的部署人员章节和配置参考的Context and Host(上下文语境与虚拟主机)章节。

7.故障处理(Troubleshooting)
在独立的Tomcat安装过程中,这里仅有两种出现问题的可能:
(1)最普遍的暂时性小问题(hiccup)是其它Web服务器(或者与那些问题相关的任何进程)已声称过8080端口的占有权,这是Tomcat在启动时试图捆绑的默认HTTP端口。为改变这种状况,打开$CATALINA_HOME/conf/server.xml文件然后搜索“8080”,把它修改为一个未被使用和大于1024的端口号,因为在UNIX系统下,绑定小于或等于1024的端口要求超级用户的访问权限。重启Tomcat,然后你就能够正常运作Tomcat了,别忘了修改浏览器中访问URL的端口号。
(2)“localhost”机器没有被发现。这可能发生在你于代理服务器之后运作Tomcat的情况,若是这种情况,确保为浏览器所做的代理服务器配置明白你不会通过代理服务器 访问本地主机“localhost”。在火狐浏览器中,这些是在Tools/Preferences ->Advanced/Network ->Connection ->Settings...下设置,而在IE浏览器中,它是在Tools ->Internet Options ->Connections ->LAN Settings下设置。

8.可选的组件
以下的可选组件可能被包含在Apache Tomcat二进制分发版中,若没有被包含,你可以单独安装它们。
(1)Apache Tomcat本地库
(2)Apache公共守护进程服务启动器(Apache Commons Daemon可以帮你实现将一个普通Java应用变成一个系统后台服务的功能)。
两者都是用C语言实现并因此必须被编译成二进制码,这二进制码对于一个平台和CPU架构都将会是具体的,并且也必须匹配将用来运行Tomcat的JRE可执行文件。
Apache Tomcat针对具体Windows系统的二进制分发版包含了这些组件的二进制文件。在其它平台上,你就需要在其他地方查找它们的二进制版本或者自己编译它们。如果你是Tomcat的新手,最好不要自寻麻烦地启用这些组件;若你的确需要使用它们,不要忘了阅读关于它们的相关文档。

8.1Apache Tomcat本地库
Apache Tomcat本地库是一个库,它允许使用属于Apache Tomcat中HTTP和AJP协议连接器的变量“Apr”,而且它是围绕OpenSSL和Apache Portable Runtime(APR)库(Apache可移植运行库)构建。这些库跟Apache HTTPD Server项目所使用的库是一样的。在Java性能很差的旧日子,这些特性是尤其重要的,而现今不再重要了,但是它仍然被很多软件项目使用和遵守。细节详情请查看Tomcat文档。
深入阅读:
- Apache Tomcat documentation
* Documentation for APR/Native library in the Tomcat User's Guide
http://tomcat.apache.org/tomcat-9.0-doc/apr.html

* Documentation for the HTTP and AJP protocol connectors in the Tomcat Configuration Reference
http://tomcat.apache.org/tomcat-9.0-doc/config/http.htm
http://tomcat.apache.org/tomcat-9.0-doc/config/ajp.html

- Apache Tomcat Native project home

http://tomcat.apache.org/native-doc/

- Other projects
* OpenSSL
http://openssl.org/

* Apache Portable Runtime
http://apr.apache.org/

* Apache HTTP Server
http://httpd.apache.org/

若想禁用Apache Tomcat本地库:
- 在它安装时禁用Apache Tomcat本地库,或者
- 在未安装库的情况下,移除Tomcat启动过程中日志记录的警告:编辑“conf/server.xml”文件,从中移除“AprLifecycleListener”。

Apache Tomcat本地库的二进制文件通常被命名为:Windows系统中为“tcnative-1.dll”,在*nix系统中则是“libtcnative-1.so”。

8.2Apache公共守护进程
Apache公共守护进程项目提供了可用来将Apache Tomcat安装为Windows服务或者*nix守护进程的包装器。针对具体Windows系统的Apache公共守护进程的实现名为“procrun”,而具体*nix系统的则名为“jsvc”。
深入阅读:
- Apache Commons Daemon project
http://commons.apache.org/daemon/

- Apache Tomcat documentation
* Installing Apache Tomcat
http://tomcat.apache.org/tomcat-9.0-doc/setup.html

* Windows service HOW-TO
http://tomcat.apache.org/tomcat-9.0-doc/windows-service-howto.html
对于Windows系统,Apache Tomcat分发版中Apache公共守护进程的二进制文件名为:“tomcat9.exe”和“tomcat9w.exe”,这两个文件是Apache公共守护进程分发版中“prunsrv.exe”和“prunmgr.exe”的重命名副本,文件名有一个含义:它们被用作Windows服务的注册服务名,以及为安装“procrun”而存储的不同配置信息的关键字名。如果你想并行安装多个Tomcat9.0的安装实例,就必须更多更进一步地(further)重命名那些文件,且使用前后一致的命名方案(scheme)。
推荐阅读
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • DSP中cmd文件的命令文件组成及其作用
    本文介绍了DSP中cmd文件的命令文件的组成和作用,包括链接器配置文件的存放链接器配置信息、命令文件的组成、MEMORY和SECTIONS两个伪指令的使用、CMD分配ROM和RAM空间的目的以及MEMORY指定芯片的ROM和RAM大小和划分区间的方法。同时强调了根据不同芯片进行修改的必要性,以适应不同芯片的存储用户程序的需求。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
author-avatar
娜丷衣阵风丶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有