首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Tomcat - CATALINA_BASE和CATALINA_HOME变量

Tomcat - CATALINA_BASE和CATALINA_HOME变量
EN

Stack Overflow用户
提问于 2010-06-22 13:00:42
回答 6查看 225.4K关注 0票数 112

我在同一台服务器(Linux)上运行了Tomcat6的多个实例,它可以正常工作。我正在尝试找出关于设置CATALINA_HOMECATALINA_BASE变量的标准实践是什么。

在我的tomcat安装中,我将CATALINA_HOME设置为指向一个“公共”文件夹(比如/tomcat6),并且CATALINA_BASE变量根据实例名称的不同而不同(比如/tomcat_instance1/tomcat_instance2)。

我的问题是:

  • 我真的需要两个变量吗?
  • ,或者我可以只有一个CATALINA_HOME,然后去掉CATALINA_BASE (反之亦然) ?
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-21 11:26:00

如果您在一台主机上运行多个Tomcat实例,那么应该将CATALINA_BASE设置为等于每个实例的.../tomcat_instance1.../tomcat_instance2目录,并将CATALINA_HOME环境变量设置为通用Tomcat安装,其文件将在两个实例之间共享。

如果您在主机上运行单个CATALINA_BASE实例,那么Tomcat环境是可选的,在这种情况下将缺省为CATALINA_HOME。如果您正在按原样运行多个实例,则应该提供它。

在Apache Tomcat发行版根目录下的RUNNING.txt文件中,标题为高级配置-多个Tomcat实例,对此设置有很好的描述

票数 117
EN

Stack Overflow用户

发布于 2015-04-02 03:00:38

CATALINA_HOME vs CATALINA_BASE

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

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

CATALINA_HOME表示Tomcat安装的根目录。

通过为每个实例定义$CATALINA_BASE,可以为多个实例配置

。如果未配置多个实例,则$CATALINA_BASE$CATALINA_HOME相同。

请参阅:Apache Tomcat 7 - Introduction

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

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

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

例如:

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

启动$CATALINA_HOME/bin/ %CATALINA_HOME%\bin\startup.bat (Unix)

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

多个Tomcat实例

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

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

CATALINA_BASE中:

仅限

  • bin:tomcat-juli.jar
  • conf (*nix)或JVM (Windows)、JVM服务器配置文件(包括server.xml)
  • lib库和类,如below
  • logs所述)-日志和输出files
  • webapps -自动加载的web applications
  • work - web applications
  • temp的临时工作目录- setenv.sh用于Temporary files>

的目录

CATALINA_HOME

  • bin -启动和关闭scripts
  • lib -库和类,如所解释的below
  • endorsed -覆盖标准“认可的标准”的库。默认情况下它是不存在的。

如何检查

检查CATALINA_BASECATALINA_HOME的最简单方法是运行startup.sh,例如:

代码语言:javascript
复制
$ /usr/share/tomcat7/bin/startup.sh
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7

您也可以使用dpkg工具检查Tomcat文件的安装位置,如下所示(Debian/Ubuntu):

代码语言:javascript
复制
dpkg -L tomcat7-common
票数 99
EN

Stack Overflow用户

发布于 2016-05-23 05:45:25

通过将CATALINA_BASE指向与CATALINA_HOME不同的目录,可以将配置目录与二进制文件目录分开。

默认情况下,Tomcat (配置)和Tomcat二进制文件指向同一文件夹,但是将配置与二进制文件分开可以帮助您并排运行CATALINA_BASE的多个实例,而无需复制二进制文件。

当您想要更新二进制文件,而不需要修改或需要备份/恢复Tomcat的配置文件时,它也很有用。

更新2018

现在有一种使用makebase实用程序设置CATALINA_BASE的更简单的方法。我在http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html上发布了一个关于这个主题的教程,并在https://youtu.be/nuugoG5c-7M上发布了一个视频教程

原始答案继续如下

要利用此功能,只需创建配置目录并使用CATALINA_BASE环境变量指向它。您必须在该目录中放置一些文件:

  • 从原始Tomcat安装目录复制conf目录,包括其内容,并确保Tomcat对该目录具有读取权限。如果conf/logging.properties指向${catalina.base}/logs,请根据您的needs.
  • Create a logs目录编辑配置文件,并确保Tomcat对该目录具有读/写权限。如果您不想覆盖指向${CATALINA_BASE}/temp的默认temp目录,则
  • 将创建一个temp目录,并确保Tomcat对该目录具有写入权限。
  • 创建一个默认为${CATALINA_BASE}/workwork目录,并确保Tomcat对该目录具有写入权限。
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3090398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档