來自:https://www.iteye.com/blog/yuri-liuyu-960964
CATALINA_BASE與CATALINA_HOME的區別
到底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管理端口用不同的端口號)