我在同一台服务器(Linux)上运行了多个tomcat 6示例,它按预期工作。我试图找出设置CATALINA_HOME
和CATALINA_BASE
变量的标准做法是什么。
在我的tomcat安装中,我设置CATALINA_HOME
指向一个“公共”文件夹(比如/tomcat6
),CATALINA_BASE
变量根据示例名称而变化(比如/tomcat_instance1
、/tomcat_instance2
)
我的问题是:
- 我真的需要两个变量吗?
- 或者我可以只拥有一个
CATALINA_HOME
,而放弃CATALINA_BASE
(反之亦然)吗?
6条答案
按热度按时间ykejflvf1#
如果在一台主机上运行多个Tomcat示例,则应将
CATALINA_BASE
设置为每个示例的相应目录.../tomcat_instance1
或.../tomcat_instance2
,并将CATALINA_HOME
环境变量设置为通用Tomcat安装,其文件将在两个示例之间共享。如果您在主机上运行单个Tomcat示例,则
CATALINA_BASE
环境是可选的,并且在这种情况下将默认为CATALINA_HOME
。如果您正在运行多个示例,则应该提供它。在Apache Tomcat发行版根目录下的
RUNNING.txt
文件中,标题为Advanced Configuration - Multiple Tomcat Instances的文件中,对这种设置有很好的描述另请参阅Apache Tomcat 10/Introduction/ Catalina _HOME和CATALINA_BASE的文档。
bxpogfeg2#
CATALINA_HOME
vsCATALINA_BASE
如果运行多个示例,则需要两个变量,否则只需要
CATALINA_HOME
。换句话说:
CATALINA_HOME
是必需的,CATALINA_BASE
是可选的。CATALINA_HOME
代表Tomcat安装的根目录。可选地,Tomcat可以配置多个示例,为每个示例定义
$CATALINA_BASE
。如果没有配置多个示例,则$CATALINA_BASE
与$CATALINA_HOME
相同。参见:Apache Tomcat 7 - Introduction
使用单独的
CATALINA_HOME
和CATALINA_BASE
运行记录在RUNNING.txt中,内容如下:CATALINA_HOME
和CATALINA_BASE
环境变量分别用于指定ApacheTomcat的位置及其活动配置的位置。不能在
setenv
脚本中配置CATALINA_HOME
和CATALINA_BASE
变量,因为它们用于查找该文件。例如:
(4.1)可以通过执行以下命令之一来启动Tomcat:
或
多个Tomcat示例
在许多情况下,希望在同一服务器上的多个用户之间共享Tomcat二进制发行版的单个副本。要实现这一点,可以将
CATALINA_BASE
环境变量设置为包含“个人”Tomcat示例的文件的目录。使用单独的
CATALINA_HOME
和CATALINA_BASE
运行时,文件和目录拆分如下:在
CATALINA_BASE
中:bin
-仅:setenv.sh(*nix)或setenv.bat(Windows)、tomcat-juli.jarconf
-服务器配置文件(包括server.xml)lib
-库和类,如下所述logs
-日志和输出文件webapps
-自动加载的Web应用程序work
-Web应用程序的临时工作目录temp
-JVM用于临时文件的目录〉在
CATALINA_HOME
中:bin
-启动和关闭脚本lib
-库和类,如下所述endorsed
-覆盖标准“认可标准”的库。默认情况下不存在。如何检查
检查
CATALINA_BASE
和CATALINA_HOME
的最简单方法是运行startup.sh
,例如:您也可以检查Tomcat文件的安装位置,通过
dpkg
工具如下(Debian/Ubuntu):blmhpbnm3#
通过将
CATALINA_BASE
指向与CATALINA_HOME
不同的目录,可以将配置目录与二进制文件目录分开。默认情况下,
CATALINA_BASE
(配置)和CATALINA_HOME
(二进制文件)指向同一个文件夹,但是将配置与二进制文件分开可以帮助您并行运行Tomcat的多个示例,而无需复制二进制文件。当您想更新二进制文件而不需要修改或需要备份/恢复Tomcat的配置文件时,它也很有用。
2018年更新
现在有一个更简单的方法来设置 Catalina _BASE,使用
makebase
实用程序。原答案续下文
要利用此功能,只需创建config目录并使用
CATALINA_BASE
环境变量指向它。您必须将一些文件放入该目录:conf
目录,包括其内容,并确保Tomcat对其具有读取权限。根据需要编辑配置文件。conf/logging.properties
指向${catalina.base}/logs
,则创建一个logs
目录,并确保Tomcat对其具有读/写权限。${CATALINA_BASE}/temp
的默认$CATALINA_TMPDIR
,请创建一个temp
目录,并确保Tomcat对其具有写入权限。${CATALINA_BASE}/work
的work
目录,并确保Tomcat对其具有写权限。liwlm1x94#
我不能说我知道最好的做法,但这是我的观点。
就我个人而言,在Linux和Windows上,在从开发到生产的各种环境中,我都不需要改变。除非你正在做一些特别依赖它们的事情,否则你可以不去管它们。
catalina.sh
设置了Tomcat需要的变量。它还说CATALINA_BASE
是可选的:我很肯定,当您启动服务器时,您会发现您的设置是否有效。
fhg3lkii5#
Catalina _BASE是可选的。
但是,在以下情况下,设置与CATALINA_HOME分开的CATALINA_BASE会有所帮助。
rhfm7lfc6#
这是包含tomcat.exe文件的bin的父文件夹:
CATALINA_BASE
与CATALINA_HOME
相同。