tomcat8のrunning.txtを翻訳してみた
running.txtとは
tomcatをインストールすると入っているテキスト。起動手順など記載されている。 http://tomcat.apache.org/tomcat-8.0-doc/RUNNING.txt でも見られる。
はじめ
Apache Tomcat 8.0サーブレット/ JSPコンテナの実行について
Apache Tomcat 8.0の実行には、バージョン7以降のJava Standard Edition Runtime(JRE)が必要です。
(1) Java SE Runtime Environment (JRE)のダウンロード及びインストール
(1.1)リリースバージョン7以降のJava SE Runtime Environment(JRE)を下記からダウンロードします。 http://www.oracle.com/technetwork/java/javase/downloads/index.html
(1.2)リリース付属の指示に従ってJREをインストールしてください。JREではなくJava Development Kit(JDK)をインストールすることでも使用できます。
(2) Apache-Tomcatのダウンロードとインストール
(2.1)Tomcatのバイナリのディストリビューションを下記からダウンロードします。 http://tomcat.apache.org/
(2.2)バイナリディストリビューションを解凍すると、データがそのディレクトリ(通常は "apache-tomcat- [version]"という名前)に保存されます。
以降、この文書では "CATALINA_HOME"は、そのディレクトリ(データのある)のフルパスを指しています。
[note]バイナリディストリビューションをダウンロードする代わりに、Tomcatのソースコードからビルドすることも可能です。詳細は、"BUILDING.txt"に記載されています。(a)(b)どちらかになります。
(a)完全な "release"ビルドを行い、作成されたディストリビューションを "output/release"ディレクトリで探し、上記のように展開する
(b)シンプルなビルドを行い、 "output/release"ディレクトリを "CATALINA_HOME"として使用する。"output/build"ディレクトリの内容と完全な "release"ビルドのディストリビューションの内容の間にはいくつかの違いがあることに注意してください。
(3)環境変数の設定
TomcatはJavaアプリケーションであり、環境変数を直接使用しません。環境変数は、Tomcat起動スクリプトによって使用されます。起動スクリプトは、Tomcatを起動するコマンドを準備するために環境変数を使用します。
(3.1)CATALINA_HOME(必須)とCATALINA_BASE(オプション)を設定します。
CATALINA_HOME環境変数は、Tomcatの「バイナリ」配布のルートディレクトリの場所に設定する必要があります。
Tomcat起動スクリプトには、この変数がない場合に自動的にこの変数を設定するロジックがあります。それはLinixの起動スクリプトの場所とWindowsの現在のディレクトリに基づいて設定されます。ですが、そのロジックはすべての状況で機能する訳ではないので、変数を明示的に設定することをお勧めします。
CATALINA_BASE環境変数は、Tomcatの "アクティブな構成"のルートディレクトリの場所を指定します。これはオプションで設定する変数です。デフォルトではCATALINA_HOMEと同じです。
CATALINA_HOMEおよびCATALINA_BASE変数に個別の値を使用することは、アップグレードおよびメンテナンスをさらに単純化するために推奨されます。これは、以下の「複数のTomcatインスタンス」セクションで説明されています。
(3.2)JRE_HOMEまたはJAVA_HOMEを設定する(必須)
これらの変数は、Java Runtime Environment(JRE)またはJava Development Kit(JDK)の場所を指定するために使用されます。JREまたはJDKは、Tomcatを起動する際に使用されます。
JRE_HOME変数は、JREの場所を指定するために使用されます。JAVA_HOME変数は、JDKの場所を指定するために使用されます。
JRE_HOMEが使用されている場合は、JAVA_HOMEを使用して特定の追加起動オプションにアクセスすることは許可されません。
JRE_HOMEとJAVA_HOMEの両方が指定されている場合は、JRE_HOMEが使用されます.
これらの変数を指定するための推奨される方法は setenvスクリプトを使用することです。
(3.3)その他の変数(オプション)
上記の4つの環境変数の他に、他の環境変数が存在します。他の環境変数のリストとその説明については、catalina.batまたはcatalina.shスクリプトの先頭にあるコメントを参照してください。
頻繁に使用される変数の1つはCATALINA_OPTSです。 Tomcatを起動するjavaコマンドの追加オプションを指定することができます。
Java Runtime Environment(JRE)に影響を与えるオプションについては、Javaのマニュアルを参照してください。
Tomcat固有のシステムプロパティについては、「Tomcat設定リファレンス」の「システムプロパティ」ページを参照してください。
同様の変数はJAVA_OPTSです。これはあまり頻繁に使用されません。 Tomcatの起動と停止、および他のコマンドの両方に使用されるオプションの指定が可能です。
Note:JAVA_OPTSを使用してメモリー制限を指定しないでください。Tomcatを停止するために使用される小さなプロセスには、あまりメモリを必要としません。それらの設定はCATALINA_OPTSに属します。
頻繁に使用される別の変数は、CATALINA_PID(Linuxのみ)です。
forkされたTomcat javaプロセスのプロセスIDが書き込まれるファイルの場所を指定します。
この設定はオプションです。次の機能が有効になります。
- 重複した起動に対する保護機能
- 標準のshutdownコマンドに反応しない場合、Tomcatプロセスの強制終了を許可
(3.4) "setenv"スクリプトを使う(オプション、推奨)
CATALINA_HOMEとCATALINA_BASEは別として、すべての環境変数は "setenv"スクリプトで指定することが可能です。
setenvスクリプトはCATALINA_BASE/binまたはCATALINA_HOME/binディレクトリに配置し、setenv.bat(Windowsの場合)またはsetenv.sh(Linuxの場合)という名前にします。ファイルは読み込み可能でなければなりません。
デフォルトでは、setenvスクリプトファイルは存在しません。スクリプトファイルがCATALINA_BASE/binとCATALINA_HOME/binの両方に存在する場合は、CATALINA_BASEのものが優先されます。
たとえば、JRE_HOMEおよびCATALINA_PID変数を構成するには、次のようなスクリプトファイルを作成します。
Windowsの場合
%CATALINA_BASE%\bin\setenv.bat
set "JRE_HOME=%ProgramFiles%\Java\jre7" exit /b 0
Linuxの場合
$CATALINA_BASE/bin/setenv.sh:
JRE_HOME=/usr/java/latest CATALINA_PID="$CATALINA_BASE/tomcat.pid"
CATALINA_HOMEおよびCATALINA_BASE変数は、setenvスクリプトで設定できません。setenvスクリプトの場所を特定するために使用されるためです。
ここに記述されているすべての環境変数と "setenv"スクリプトは Tomcatを起動するために標準のスクリプトを使用する場合にのみ使用されます。
たとえば、TomcatをWindows上のサービスとしてインストールした場合、サービスラッパーはJavaを直接起動し、スクリプトファイルは使用しません。
(4)Tomcatの起動
(4.1)Tomcatは、次のコマンドのいずれかを実行することで起動できます。
Windowsの場合:
%CATALINA_HOME%\bin\startup.bat または %CATALINA_HOME%\bin\catalina.bat start
Linuxの場合:
$ CATALINA_HOME/bin/startup.sh または $ CATALINA_HOME/bin/catalina.sh start
(4.2)起動後、Tomcatに含まれるデフォルトのWebアプリケーションは、次のURLからアクセスできます。
(4.3)Tomcatの設定と実行の詳細については、TomcatのWebサイトだけでなく、ここに含まれているマニュアルにも記載されています。
(5)Tomcatの停止
(5.1)Tomcatは、次のコマンドのいずれかを実行することによってシャットダウンできます。
Windowsの場合:
%CATALINA_HOME%\bin\shutdown.bat
または
%CATALINA_HOME%\bin\catalina.bat stop
Linuxの場合:
$ CATALINA_HOME/bin/shutdown.sh
または
$ CATALINA_HOME/bin/catalina.sh stop
高度な構成 - 複数のTomcatインスタンス
同じサーバー上の複数のユーザーでTomcatを使用する場合、大抵において、1つのTomcatのバイナリディストリビューションをコピーして共有することが望ましいです。
これを可能にするには、CATALINA_BASE環境変数を、個人用のTomcatインスタンス用のファイルを含むディレクトリに設定します。
異なるCATALINA_HOMEおよびCATALINA_BASEを使用してTomcatを実行する場合、ファイル ディレクトリは次のように分割されます。
CATALINA_BASEの場合:
* bin - 以下のファイルのみ:
setenv.sh(Linux)またはsetenv.bat(Windows)、 tomcat-juli.jar
setenvスクリプトは上記のとおりです。チュートリアルライブラリ 「ユーザガイド」の「ロギング」の章に記載されています。
* conf - サーバー構成ファイル(server.xmlを含む)
* lib - 以下に説明するライブラリとクラス
* logs - ログファイルと出力ファイル
* webapps - 自動的にロードされたWebアプリケーション
* work - ウェブアプリケーション用の一時的な作業ディレクトリ
* temp - JVMが一時ファイル用に使用するディレクトリ(java.io.tmpdir)
CATALINA_HOMEの場合:
* bin - スタートアップスクリプトとシャットダウンスクリプト
以下のファイルは、CATALINA_BASE/binに不在の場合にのみ使用されます。
* setenv.sh(Linux)、setenv.bat(Windows)、 * tomcat-juli.jar
* lib - 以下に説明するライブラリとクラス
* endorsed - 標準の "endorsed(推奨規格)"をオーバーライドするライブラリ
JREが提供するライブラリクラスローディングのドキュメントを参照してください。
詳細については、「ユーザーガイド」を参照してください。 デフォルトでは、この "endorsed"ディレクトリは存在しません。
デフォルトの設定では、CATALINA_BASE/libとCATALINA_HOME/libの両方のJARライブラリとクラスが共通のクラスパスに追加されますが、CATALINA_BASEのものは最初に追加され、最初に検索されます。
CATALINA_HOME/libの標準Tomcatライブラリを使用し、データベースドライバなどの他のものをCATALINA_BASE/libに追加する、といった考え方はやめたほうがいいかもしれません。
一般的には、Webアプリケーション間でライブラリを共有することは絶対に避けてください。アプリケーション内のWEB-INF/libディレクトリにライブラリを置くことをお勧めします。
詳細については、「ユーザーガイド」の「クラスローディング」を参照してください。
CATALINA_HOMEとCATALINA_BASEの値は、Tomcatが$ {catalina.home}と$ {catalina.base}としてそれぞれ処理したXML設定ファイルで参照できると書いておくと便利です。
例えば、標準のマネージャWebアプリケーションをCATALINA_HOME/webapps/managerに保存し、次のようなトリックを使って、CATALINA_BASEにロードします。
- CATALINA_HOME/webapps/manager/META-INF/context.xmlファイルをCATALINA_BASE/conf/Catalina/localhost/manager.xmlとしてコピーします。
- 以下のようにdocBase属性を追加する。
ファイルは次のようになります。
<?xml version="1.0" encoding="UTF-8"?> <Context docBase="${catalina.home}/webapps/manager" antiResourceLocking="false" privileged="true" > <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" /> </Context>
コンテキストおよびWebアプリケーションのデプロイメントの詳細については、「コンフィグレーションリファレンス」の「ユーザガイド」の「Deployer」の章と「Context and Host」の章を参照してください。
トラブルシューティング
スタンドアローンのTomcatをインストールする場合、下記の2つのケースのトラブルが非常に多いです。
(1)このケースは、別のWebサーバー(またはそれに関するプロセス)がポート8080に使用していた場合です。ポート8080は、起動時にTomcatがバインドしようとするデフォルトのHTTPポートです。これを変更するには、下記のファイルを開き、 '8080'を検索します。 :
$ CATALINA_HOME / conf / server.xml
ポート8080を使用していないポート番号にを変更します。1024より小さいポートはスーパーユーザーがUNIXでバインドする必要があるため、1024より大きい値に変更してください。
Tomcatを再起動すれば、うまくいっているでしょう。 Tomcatにアクセスするために使用しているURLの ポート"8080"を置き換えてください。たとえば、ポートを1977に変更する場合は、ブラウザにhttp://localhost:1977/ というURLを要求します。
(2)'localhost'マシンが見つからないというケースです。これはプロキシがある場合に発生します。その場合、ブラウザ設定が、 "localhost"にアクセスするためにプロキシを経由しないようになっていることを確認してください。
Firefoxでは、これは[ツール/環境設定] - > [詳細設定] - [ネットワーク] - > 接続 - >設定...、Internet Explorerではツール - >インターネットオプション - >接続 - > LAN設定です。
オプションのコンポーネント
次のオプションのコンポーネントは、Apache Tomcatバイナリディストリビューションに含まれている場合があります。含まれていない場合は、個別にインストールできます。 1. Apache Tomcatネイティブライブラリ 2. Apache Commons Daemonサービスランチャー
どちらもC言語で実装されているため、バイナリコードにコンパイルする必要があります。 バイナリコードは、プラットフォームとCPUアーキテクチャに合わせる必要があり、またTomcatを起動するために使用されるJava Runtime Environment(JRE)実行ファイルと一致する必要があります。
Apache TomcatのWindows固有のバイナリディストリビューションには、これらのコンポーネントのバイナリファイルが含まれています。 他のプラットフォームでは、バイナリバージョンを別の場所で探すか、自分でコンパイルする必要があります。
Tomcatを初めてお使いの方は、まずはこれらのコンポーネントを気にしないでください。 それらを使用している場合は、そのドキュメントを読むことを忘れないでください。
Apache Tomcatネイティブライブラリ
これは、Apache TomcatでHTTPとAJPプロトコルのコネクターで「APR」という特殊なものを使用できるようにするライブラリです。 OpenSSLとAPR(Apache Portable Runtime)ライブラリを中心に構築されています。Apache HTTPD Serverプロジェクトで使用されているものと同じライブラリです。
この機能は、Javaのパフォーマンスが悪い昔は特に重要でした。 最近はあまり重要ではありませんが、まだ多くの人々によって使用されています。詳細については、Tomcatのドキュメントを参照してください。
詳細:
* TomcatユーザーズガイドのAPR /ネイティブライブラリのドキュメント
http://tomcat.apache.org/tomcat-8.0-doc/apr.html
* TomcatのHTTPおよびAJPプロトコルコネクタのドキュメント、設定リファレンス
http://tomcat.apache.org/tomcat-8.0-doc/config/http.html
http://tomcat.apache.org/tomcat-8.0-doc/config/ajp.html
http://tomcat.apache.org/native-doc/
- その他のプロジェクト
* OpenSSL
* Apacheポータブルランタイム
* Apache HTTPサーバー
Apache Tomcatネイティブライブラリを無効にするには:
- インストール時にApache Tomcatネイティブライブラリを無効にする。
- ライブラリがインストールされていない場合、Tomcat起動時に警告を取り除くため、 "conf/server.xml"ファイルを編集し、 "AprLifecycleListener"を削除する。
Apache Tomcatネイティブライブラリのバイナリファイルは、通常以下である。
- Windows上の "tcnative-1.dll"
- Linuxシステムでは "libtcnative-1.so"
Apache Tomcatネイティブライブラリ
Apache Commons Daemonプロジェクトは、Apache TomcatをWindows上のサービスとして、またはLinuxシステム上のデーモンとしてインストールするために使用できるラッパーを提供します。 Apache Commons DaemonのWindows固有の実装は、「procrun」と呼ばれます。 Linux固有のものは "jsvc"と呼ばれています。
詳細:
http://commons.apache.org/daemon/
http://tomcat.apache.org/tomcat-8.0-doc/setup.html
* WindowsサービスHOW-TO
http://tomcat.apache.org/tomcat-8.0-doc/windows-service-howto.html
Apache TomcatディストリビューションのWindows用のApache Commons Daemonのバイナリファイルの名前は次のとおりです。
- "tomcat8.exe"
- "tomcat8w.exe"
これらのファイルは、Apache Commonsデーモンの配布から "prunsrv.exe"と "prunmgr.exe"という名前に変更されています。 ファイル名は次のような意味を持ちます。これらはファイル名は、Windowsでサービスを登録するためのサービス名として使用されます。また、この "procrun"のインストールに異なる設定を保存するためのキー名としても使用されます。 Tomcat 8.0の複数のインスタンスを並列にインストールする場合は、これらのファイルの名前を変更する必要があります。(同じ名前付けスキームを使用したほうがいい)