CATALINA_HOME против CATALINA_BASE

11

Я не могу найти окончательного ответа на вопрос, почему Ubuntu установит переменную среды CATALINA_BASE , делая ее отличной от CATALINA_HOME . Я нашел этот документ , который предполагает, что не установление CATALINA_BASE сделает его эквивалентным% код%. Этот документ также предлагает установить CATALINA_HOME , чтобы сделать несколько экземпляров доступными.

Однако я, похоже, не могу найти ничего, что объясняет это. Предположительно, работа с одним CATALINA_BASE была хорошей в течение длительного времени, но Ubuntu переключился.

Я нашел этот вопрос с освещающий ответ на AskUbuntu, но особо не указано на CATALINA_HOME vs. CATALINA_HOME . Этот вопрос ссылается на параметр "appBase", который документирован в документации Tomcat6 для контейнера Host в файле конфигурации.

Вот вопросы: Почему эти две переменные разделены? Когда они должны быть разделены? Что это позволяет администратору делать? Что вы помещаете в каждый каталог? Когда эти две переменные должны быть одинаковыми? Что рекомендует ASF для стандартной практики?

    
задан Mei 03.06.2011 в 16:12
источник

3 ответа

12

Why are these two variables separated?

catalina.home указывает на местоположение общей информации.
Catalina.base указывает на каталог, в котором хранятся все экземпляры .

Итак, у вас есть 1 дом и может иметь более 1 базы.

When should they be separated? When should these two variables be the same?

Если у вас есть 1 tomcat, вы можете установить их на одно и то же значение, но хорошая практика предложит вам планировать заранее и держать их в отдельности: вы никогда не знаете, нужно ли вам больше одного кота. Ubuntu начал следовать этому способу мышления из-за того, что он более логичен: он упрощает запуск 2+ кошек, но не отключает запуск 1 tomcat, где для их установки одинаковое значение потребовало бы, чтобы все редактировали базовое значение. Имеет больше смысла держать их разными.

What does this allow the administrator to do?

Разрешить запуск более 1 tomcat в то же время, когда каждый экземпляр tomcat может иметь свои собственные приложения.

What do you then place into each directory?

В доме содержится бензин.
База содержит conf, logs, webapps, work и temp. 1 для каждого экземпляра tomcat.

    
ответ дан Rinzwind 03.06.2011 в 16:27
4

CATALINA_HOME vs CATALINA_BASE

Если вы используете несколько экземпляров, вам нужны обе переменные, иначе только CATALINA_HOME .

Другими словами: CATALINA_HOME требуется, а CATALINA_BASE является необязательным.

CATALINA_HOME представляет корень вашей установки Tomcat.

Optionally, Tomcat may be configured for multiple instances by defining $CATALINA_BASE for each instance. If multiple instances are not configured, $CATALINA_BASE is the same as $CATALINA_HOME.

Смотрите: Apache Tomcat 7 - Введение

Запуск с отдельными CATALINA_HOME и CATALINA_BASE задокументирован в RUNNING.txt, которые говорят:

The CATALINA_HOME and CATALINA_BASE environment variables are used to specify the location of Apache Tomcat and the location of its active configuration, respectively.

You cannot configure CATALINA_HOME and CATALINA_BASE variables in the setenv script, because they are used to find that file.

Например:

(4.1) Tomcat can be started by executing one of the following commands:

  %CATALINA_HOME%\bin\startup.bat         (Windows)

  $CATALINA_HOME/bin/startup.sh           (Unix)

or

  %CATALINA_HOME%\bin\catalina.bat start  (Windows)

  $CATALINA_HOME/bin/catalina.sh start    (Unix)

Несколько экземпляров Tomcat

In many circumstances, it is desirable to have a single copy of a Tomcat binary distribution shared among multiple users on the same server. To make this possible, you can set the CATALINA_BASE environment variable to the directory that contains the files for your 'personal' Tomcat instance.

When running with a separate CATALINA_HOME and CATALINA_BASE, the files and directories are split as following:

In CATALINA_BASE:

  • bin - Only: setenv.sh (*nix) or setenv.bat (Windows), tomcat-juli.jar
  • conf - Server configuration files (including server.xml)
  • lib - Libraries and classes, as explained below
  • logs - Log and output files
  • webapps - Automatically loaded web applications
  • work - Temporary working directories for web applications
  • temp - Directory used by the JVM for temporary files>

In CATALINA_HOME:

  • bin - Startup and shutdown scripts
  • lib - Libraries and classes, as explained below
  • endorsed - Libraries that override standard "Endorsed Standards". By default it's absent.

Как проверить

Самый простой способ проверить, каковы ваши CATALINA_BASE и CATALINA_HOME , путем запуска startup.sh , например:

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

Вы также можете проверить, где установлены файлы Tomcat, с помощью инструмента dpkg , как показано ниже (Debian / Ubuntu):

dpkg -L tomcat7-common
    
ответ дан kenorb 01.04.2015 в 19:02
3

Кроме того, что это лучший способ запустить два экземпляра tomcat, упрощается обновление.

Я использую эту настройку.

<!-- language: bash -->

/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 = / Opt / апаша-7-кот

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

CATALINA_BASE указывает на тот или иной каталог развертывания.

Основные двоичные файлы и библиотеки находятся на /opt/ Просто скопируйте server.xml , web.xml (и некоторые другие файлы, прочитайте документы, пожалуйста) и создайте каталоги bin, logs, webapps, temp, work (RTLM, L as любезно, пожалуйста)

Вы можете обновить двоичные файлы tomcat, изменив CATALINA_HOME на файл $ CATALINA_BASE / bin / setenv.sh для каждого экземпляра, или вы можете просто изменить символическую ссылку, обновив бинарные файлы «глобально»

Легче обновить, даже если у вас есть только один экземпляр.

    
ответ дан dario the boring 29.03.2013 в 19:46