web-dev-qa-db-ja.com

tomcat-CATALINA_BASEおよびCATALINA_HOME変数

同じサーバー(Linux)でTomcat 6の複数のインスタンスを実行していますが、期待どおりに機能します。 CATALINA_HOME変数とCATALINA_BASE変数の設定に関する標準的な慣行を確認しようとしています。

Tomcatのインストールでは、CATALINA_HOMEが「共通」フォルダー(たとえば[/Tomcat6])を指すようにセットアップし、CATALINA_BASE変数はインスタンス名(たとえば/Tomcat_instance1/Tomcat_instance2

私の質問はこれです:

  • 本当に2つの変数が必要ですか?
  • または、CATALINA_HOMEを1つだけ使用してCATALINA_BASE(またはその逆)を廃止できますか?
89
souser

単一のホストでTomcatの複数のインスタンスを実行している場合、CATALINA_BASEを各インスタンスと.../Tomcat_instance1環境に応じて.../Tomcat_instance2またはCATALINA_HOMEディレクトリと等しくなるように設定する必要があります。 2つのインスタンス間でファイルが共有される共通Tomcatインストールへの変数。

ホストで単一のTomcatインスタンスを実行している場合、CATALINA_BASE環境はオプションであり、その場合はデフォルトでCATALINA_HOMEになります。複数のインスタンスを実行している場合は、提供される必要があります。

この設定の説明は、Apache TomcatディストリビューションのルートにあるRUNNING.txtファイルの見出し高度な設定-複数のTomcatインスタンスにあります。

95
Russ

CATALINA_HOME vs CATALINA_BASE

複数のインスタンスを実行している場合は、両方の変数が必要です。それ以外の場合は、CATALINA_HOMEのみです。

つまり、CATALINA_HOMEは必須であり、CATALINA_BASEはオプションです。

CATALINA_HOMEは、Tomcatインストールのルートを表します。

オプションで、Tomcatは、各インスタンスに$CATALINA_BASEを定義することにより、複数のインスタンスに対して構成できます。複数のインスタンスが構成されていない場合、$CATALINA_BASE$CATALINA_HOMEと同じです。

参照: Apache Tomcat 7-はじめに

CATALINA_HOMECATALINA_BASEを別々に実行することは、RUNNING.txtに文書化されています。

CATALINA_HOMEおよびCATALINA_BASE環境変数は、それぞれApache Tomcatの場所とそのアクティブな構成の場所を指定するために使用されます。

setenvスクリプトでCATALINA_HOMEおよびCATALINA_BASE変数を構成することはできません。これらのファイルはそのファイルを見つけるために使用されるためです。

例えば:

(4.1)次のコマンドのいずれかを実行することにより、Tomcatを起動できます。

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

  $CATALINA_HOME/bin/startup.sh           (Unix)

または

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

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

複数のTomcatインスタンス

多くの場合、同じサーバー上の複数のユーザー間でTomcatバイナリ配布の単一のコピーを共有することが望ましいです。これを可能にするために、CATALINA_BASE環境変数を、「個人」Tomcatインスタンスのファイルを含むディレクトリに設定できます。

個別のCATALINA_HOMECATALINA_BASEを使用して実行する場合、ファイルとディレクトリは次のように分割されます。

CATALINA_BASE ::

  • bin-のみ:setenv.sh(* nix)またはsetenv.bat(Windows)、Tomcat-juli.jar
  • conf-サーバー構成ファイル(server.xmlを含む)
  • lib-以下で説明するライブラリとクラス
  • logs-ログおよび出力ファイル
  • webapps-自動的にロードされるWebアプリケーション
  • work-Webアプリケーションの一時作業ディレクトリ
  • temp-JVMが一時ファイルに使用するディレクトリ>

CATALINA_HOME ::

  • bin-起動およびシャットダウンスクリプト
  • lib-以下で説明するライブラリとクラス
  • endorsed-標準の「承認済み標準」をオーバーライドするライブラリ。デフォルトでは存在しません。

確認方法

CATALINA_BASEおよびCATALINA_HOMEが何であるかを確認する最も簡単な方法は、startup.shを実行することです。次に例を示します。

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

以下のdpkgツール(Debian/Ubuntu)を使用して、Tomcatファイルがインストールされている場所を確認することもできます。

dpkg -L Tomcat7-common
72
kenorb

私はベストプラクティスを知っているとは言えませんが、ここに私の視点があります。

yoこれらの変数を何かに使用していますか?

個人的には、LinuxでもWindowsでも、開発から実稼働までさまざまな環境で変更する必要はありません。あなたがそれらに依存する特定の何かをしているのでない限り、あなたはそれらを放っておける可能性があります。

catalina.shは、Tomcatがそのまま動作するために必要な変数を設定します。また、CATALINA_BASEはオプションであることも示しています。

#   CATALINA_HOME   May point at your Catalina "build" directory.
#
#   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
#                   of a Catalina installation.  If not present, resolves to
#                   the same directory that CATALINA_HOME points to.

サーバーの起動時にセットアップが機能するかどうかを確認できると確信しています。

11
Lauri Lehtinen

CATALINA_BASECATALINA_HOMEとは別のディレクトリにポイントすると、構成ディレクトリをバイナリディレクトリから分離できます。

デフォルトでは、CATALINA_BASE(構成)とCATALINA_HOME(バイナリ)は同じフォルダーを指しますが、構成をバイナリから分離すると、バイナリを複製せずにTomcatの複数のインスタンスを並べて実行できます。

また、Tomcatの構成ファイルを変更したり、バックアップ/復元する必要なく、バイナリを更新したい場合にも役立ちます。

更新2018

makebaseユーティリティを使用して、CATALINA_BASEを設定する簡単な方法があります。このテーマをカバーするチュートリアルを http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-Tomcat.html にビデオチュートリアルとともに投稿しました。 https://youtu.be/nuugoG5c-7M

元の回答は以下に続きます

この機能を利用するには、単にconfigディレクトリを作成し、CATALINA_BASE環境変数でそれを指すようにします。そのディレクトリにいくつかのファイルを配置する必要があります。

  • 元のTomcatインストールディレクトリからconfディレクトリをその内容も含めてコピーし、Tomcatに読み取り権限があることを確認します。必要に応じて構成ファイルを編集します。
  • conf/logging.properties${catalina.base}/logsを指す場合はlogsディレクトリを作成し、Tomcatに読み取り/書き込み権限があることを確認します。
  • $CATALINA_TMPDIRを指すデフォルトの${CATALINA_BASE}/tempをオーバーライドしない場合は、tempディレクトリを作成し、Tomcatが書き込み許可を持っていることを確認します。
  • デフォルトで${CATALINA_BASE}/workに設定されるworkディレクトリを作成し、Tomcatが書き込み許可を持っていることを確認します。
7
isapir

CATALINA_BASEはオプションです。

ただし、次のシナリオでは、CATALINA_HOMEとは別のCATALINA_BASEをセットアップすると役立ちます。

  1. Tomcatの複数のインスタンスが同じホストで実行されている場合

    • これにより、Tomcatインストールのランタイムが1つだけになり、複数のCATALINA_BASEサーバー構成が別々のポートで実行されます。
    • パッチの適用またはバージョンのアップグレードが必要な場合は、1つのインストール変更のみが必要であるか、テスト/検証/サインオフが必要です。
  2. 懸念の分離(単一責任)

    • Tomcatランタイムは標準であり、リリースプロセスごとに変更されることはありません。つまり、Tomcatバイナリ
    • リリースプロセスでは、webapplication(webappsフォルダー)、環境構成(confディレクトリー)、logs/temp/workディレクトリーとしてさらに多くのものを追加できます。
1
Anamika