tomcat CATALINA_HOME与CATALINA_BASE的区别

对于$CATALINA_BASE和$CATALINA_HOME的区别,自己刚开始也不是很清楚,后来多次遇到就上网搜了下相关资料。有一篇介绍写的挺不错,现摘抄过来,自己就不重复造轮子了。

额外补充一点的是,tomcat在启动的时候会首先寻找系统变量$CATALINA_BASE,如果没有找到,则去找$CATALINA_HOME,然后去该变量目录下的conf文件夹内加载配置文件。

以下内容为转载,出处:http://blog.youkuaiyun.com/keda8997110/article/details/21400455

到底CATALINA_HOME和CATALINA_BASE有什么区别呢,之前因为都是小打小闹的在服务器上安装一个tomcat就得了,然后根据前人的配置,将CATALINA_HOME和CATALINA_BASE两个值设为了tomcat的目录(其实此处描述很不精确),今天无意间看到了公司的安装文档说明,里面提到了多个tomcat实例运行的配置,才弄明白到底这两者之间有什么区别。


我们可以从Tomcat 5.5的配置文档(http://tomcat.apache.org/tomcat-5.5-doc/config/host.html) 中找到答案:


The description below uses the variable name $CATALINA_HOME to refer to the directory into which you have installed Tomcat 5, and is the base directory against which most relative paths are resolved. However, if you have configured Tomcat 5 for multiple instances by setting a CATALINA_BASE directory, you should use $CATALINA_BASE instead of $CATALINA_HOME for each of these references.


从这段描述可以看出CATALINA_HOME和CATALINA_BASE的区别。简单的说,CATALINA_HOME是Tomcat的安装目 录,CATALINA_BASE是Tomcat的工作目录。如果我们想要运行Tomcat的 多个实例,但是不想安装多个Tomcat软件副本。那么我们可以配置多个工作 目录,每个运行实例独占一个工作目录,但是共享同一个安装目录。
 


 
Tomcat每个运行实例需要使用自己的conf、logs、temp、webapps、work和shared目录,因此CATALINA_BASE就 指向这些目录。 而其他目录主要包括了Tomcat的二进制文件和脚本,CATALINA_HOME就指向这些目录。


如果我们希望再运行另一个Tomcat实例,那么我们可以建立一个目录,把conf、logs、temp、webapps、work和shared拷贝 到该目录下,然后让CATALINA_BASE指向该目录即可。
 
在一台服务器上,可以运行多个tomcat实例,不需要安装多个tomcat,可以采用不同的用户,以test用户为例,拷贝/usr/local/apache-tomcat-6.0.18目录到/home/test下,删除/home/test/apache-tomcat-6.0.18/bin子目录(此目录不需要),编辑/home/test/.bash_profile文件,设置CATALINA_HOME指向刚才的安装目录/usr/local/apache-tomcat-6.0.18,设置JAVA_HOME指向刚才的安装目录/usr/java/jdk1.6.0_11。设置CATALINA_BASE指向/home/test/apache-tomcat-6.0.18,设置CATALINA_OPTS跟/root/.bash_profile的一致(jmx管理端口用不同的端口号)

### 在 Windows 11 上配置 Tomcat 的环境变量 在 Windows 11 中正确配置 Tomcat 的环境变量涉及几个关键步骤,包括设置 `CATALINA_HOME`、`CATALINA_BASE` 和 `TEMP`。以下是具体的操作指南以及常见问题的排查方法。 #### 设置 `CATALINA_HOME` `CATALINA_HOME` 是指向 Tomcat 安装目录的主要环境变量。假设 Tomcat 已经解压到 `C:\apache-tomcat-9.0.82`,那么可以按照以下步骤设置: 1. 打开“控制面板” -> “系统和安全” -> “系统” -> “高级系统设置”。 2. 点击“环境变量”按钮。 3. 在“系统变量”部分,点击“新建”。 4. 输入变量名为 `CATALINA_HOME`,变量值为 `C:\apache-tomcat-9.0.82`[^1]。 #### 设置 `CATALINA_BASE` `CATALINA_BASE` 是用于区分多个 Tomcat 实例的环境变量。如果只需要运行单个实例,则可以直接将 `CATALINA_BASE` 设置为 `CATALINA_HOME` 相同的路径。如果是多实例部署,需要为每个实例创建独立的工作目录,并将其作为 `CATALINA_BASE` 的值。 例如,创建一个新的工作目录 `C:\tomcat_instance_1`,并将其中复制一份 `conf`、`logs`、`temp`、`webapps` 和 `work` 目录的内容。随后,在环境变量中新增一项: - 变量名:`CATALINA_BASE` - 变量值:`C:\tomcat_instance_1`[^5] #### 设置 `TEMP` 虽然 Tomcat 默认会使用系统的临时文件夹(通常位于 `C:\Users\<用户名>\AppData\Local\Temp`),但也可以通过设置 `CATALINA_TEMPDIR` 来指定特定的临时目录。这对于调试或性能优化非常有用。 同样地,在“环境变量”对话框中的“系统变量”部分,添加新的变量: - 变量名:`CATALINA_TEMPDIR` - 变量值:`C:\custom_temp_for_tomcat` 确保该目录已提前创建好。 #### 验证配置是否成功 完成上述配置后,可以通过以下方式测试配置的有效性: 1. 打开命令提示符,导航至 `%CATALINA_HOME%\bin`。 2. 运行 `catalina.bat configtest` 命令来检查是否有错误消息返回。 3. 如果一切正常,继续执行 `startup.bat` 启动服务;访问浏览器地址栏输入 `http://localhost:8080/` 查看欢迎页面是否存在。 #### 排查常见问题 - **无法启动服务**:确认所有的环境变量都已被正确定义且无拼写错误。另外注意防火墙规则可能会阻止某些端口通信。 - **日志显示异常信息**:查看对应实例的日志文件 (`%CATALINA_BASE%\logs`) 寻找线索。 - **内存不足警告**:适当增加 JVM 参数分配给 Tomcat 的堆大小,如 `-Xms512m -Xmx1g` 加入到 `set JAVA_OPTS=` 行里[^3]。 --- ```batch :: Example batch file to setup multiple instances on Windows. @echo off setlocal enabledelayedexpansion rem Define first instance settings set INSTANCE_NAME=instance_one set CATALINA_BASE=C:\tomcats\!INSTANCE_NAME! if not exist "!CATALINA_BASE!" ( mkdir !CATALINA_BASE! ) copy /Y "%CATALINA_HOME%\conf" "!CATALINA_BASE!\" xcopy /E /I "%CATALINA_HOME%\webapps" "!CATALINA_BASE!\webapps" call "%CATALINA_HOME%\bin\catalina.bat" start endlocal ``` --- ### 注意事项 当存在多个 JDK 版本时,可能会影响新配置立即生效的情况。此时需重启计算机或重新加载当前会话下的环境变量变化[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值