CATALINA_HOME与CATALINA_BASE

我找不到一个明确的答案,为什么Ubuntu会设置CATALINA_BASE环境变量,使其与CATALINA_HOME不同。 我发现这个文件表明不设置CATALINA_BASE会使它等同于CATALINA_HOME 。 该文档还建议设置CATALINA_BASE以使多个实例可用。

但是,我似乎无法找到任何解释这一点的东西。 据推测,使用单个CATALINA_HOME运行已经很长时间了,但Ubuntu切换了。

我发现这个问题在AskUbuntu上有一个很有启发性的答案 ,但CATALINA_HOMECATALINA_BASE没有太多具体关系。 该问题确实提到了“appBase”参数,该参数在配置文件中的Host容器的Tomcat6文档中有记录。

以下是问题:为什么这两个变量是分开的? 什么时候应该分开? 这允许管理员做什么? 然后你将什么放入每个目录? 这两个变量何时应该相同? ASF对标准实践的建议是什么?

为什么这两个变量分开?

catalina.home指向共同信息的位置。
catalina.base指向保存所有实例特定信息的目录。

所以你有1个家,可以有超过1个基地。

什么时候应该分开? 这两个变量何时应该相同?

如果您有1个tomcat,您可以将它们设置为相同的值但是良好的做法会建议您提前计划并将它们分开:您永远不知道是否需要多个tomcat。 Ubuntu开始遵循这种思维方式,因为它更合乎逻辑:它使得运行2+ tomcats变得更容易,但是没有禁用运行1 tomcat,将它们设置为相同的值将需要每个人编辑基值。 让它们与众不同更有意义。

这允许管理员做什么?

允许多个tomcat在每个tomcat实例可以拥有自己的应用程序的同时运行。

然后你将什么放入每个目录?

家里有binairy。
Base包含conf,logs,webapps,work和temp。 每个tomcat实例1个。

CATALINA_HOMECATALINA_BASE

如果您正在运行多个实例,那么您需要两个变量,否则只需要CATALINA_HOME

换句话说: CATALINA_HOME是必需的, CATALINA_BASE是可选的。

CATALINA_HOME表示Tomcat安装的根目录。

(可选)通过为每个实例定义$CATALINA_BASE ,可以为多个实例配置Tomcat。 如果未配置多个实例,则$CATALINA_BASE$CATALINA_HOME相同。

请参阅: Apache Tomcat 7 – 简介

RUNNING.txt中记录了使用单独的CATALINA_HOMECATALINA_BASE运行,其中说:

CATALINA_HOMECATALINA_BASE环境变量分别用于指定Apache Tomcat的位置及其活动配置的位置。

您无法在setenv脚本中配置CATALINA_HOMECATALINA_BASE变量,因为它们用于查找该文件。

例如:

(4.1)可以通过执行以下命令之一来启动Tomcat:

  %CATALINA_HOME%\bin\startup.bat (Windows) $CATALINA_HOME/bin/startup.sh (Unix) 

要么

  %CATALINA_HOME%\bin\catalina.bat start (Windows) $CATALINA_HOME/bin/catalina.sh start (Unix) 

多个Tomcat实例

在许多情况下,希望在同一服务器上的多个用户之间共享Tomcat二进制分发的单个副本。 为了实现这一点,您可以将CATALINA_BASE环境变量设置为包含“个人”Tomcat实例文件的目录。

使用单独的CATALINA_HOMECATALINA_BASE运行时,文件和目录将按如下方式拆分:

CATALINA_BASE

  • bin – 仅:setenv.sh(* nix)或setenv.bat(Windows),tomcat-juli.jar
  • conf – 服务器配置文件(包括server.xml)
  • lib – 库和类,如下所述
  • logs – 记录和输出文件
  • webapps – 自动加载的Web应用程序
  • work – Web应用程序的临时工作目录
  • temp – JVM用于临时文件的目录>

CATALINA_HOME

  • bin – 启动和关闭脚本
  • lib – 库和类,如下所述
  • endorsed – 覆盖标准“认可标准”的图书馆。 默认情况下,它不存在。

怎么检查

通过运行startup.sh来检查CATALINA_BASECATALINA_HOME是什么的最简单方法,例如:

 $ /usr/share/tomcat7/bin/startup.sh Using CATALINA_BASE: /usr/share/tomcat7 Using CATALINA_HOME: /usr/share/tomcat7 

您还可以通过dpkg工具检查Tomcat文件的安装位置(Debian / Ubuntu):

 dpkg -L tomcat7-common 

除了是运行两个tomcat实例的最佳方式之外,它还更容易更新。

我正在使用此设置。

  /opt/apache-tomcat-7.0-32 /opt/apache-tomcat-7.0.39 /opt/apache-tomcat-7 (simbolic link to apache-tomcat-7.0.32) 

CATALINA_HOME = /选择/ Apache的Tomcat的7

 /srv/user_deploys/tomcat_product_a /srv/user_deploys/tomcat_product_b 

CATALINA_BASE指向一个或另一个部署目录。

基本二进制文件和库在/opt/ Just copy server.xmlweb.xml (以及其他一些文件,请阅读文档)并创建目录bin,logs,webapps,temp,work(RTLM,L as lovelly,please )

您可以通过修改每个实例的$ CATALINA_BASE / bin / setenv.sh文件中的CATALINA_HOME来更新tomcat二进制文件,或者只需修改符号链接,更新二进制文件“global”

即使您只有一个实例,也更容易更新。

    Interesting Posts