Tomcat セットアップ

目次

はじめに

Tomcatを様々なプラットフォームで実行するためのセットアップ方法はいくつかあります。その主なドキュメントは、RUNNING.txtというファイルです。以下の情報でご不明な点がある場合は、このファイルをご参照いただくことをお勧めします。

Windows

WindowsにTomcatをインストールするのは、Windowsインストーラーを使用すれば簡単に行えます。そのインターフェースと機能は、他のウィザードベースのインストーラーと似ており、いくつかの注目すべき点があります。

  • サービスとしてのインストール: どの設定が選択されても、TomcatはWindowsサービスとしてインストールされます。コンポーネントページのチェックボックスを使用すると、サービスが「自動」スタートアップに設定され、Windows起動時にTomcatが自動的に起動するようになります。最適なセキュリティのために、サービスは権限を制限した別のユーザーとして実行されるべきです (Windowsサービス管理ツールとそのドキュメントを参照してください)。
  • Javaの場所: インストーラーは、サービスを実行するために使用するデフォルトのJREを提供します。インストーラーはレジストリを使用して、Java 17以降のJRE(完全なJDKの一部としてインストールされたJREを含む)のベースパスを決定します。インストーラーはまずJREを探し、JREが見つからない場合にのみJDKを探します。最終的に、JREまたはJDKが見つからない場合は、JAVA_HOME環境変数を使用しようとします。インストーラーが検出したデフォルトのJREを使用することは必須ではありません。インストールされているJava 17以降のJREであればどれでも使用できます。
  • トレイアイコン: Tomcatがサービスとして実行されている場合、Tomcat実行中にトレイアイコンは表示されません。インストールの最後にTomcatを実行することを選択した場合、Tomcatがサービスとしてインストールされていたとしても、トレイアイコンが使用されることに注意してください。
  • デフォルト設定: インストーラーで使用されるデフォルト設定は、/C=<config file> コマンドライン引数を使用することで上書きできます。設定ファイルはname=valueという形式を使用し、各ペアは別々の行に記述されます。利用可能な設定オプションの名前は以下の通りです。
    • JavaHome
    • TomcatPortShutdown
    • TomcatPortHttp
    • TomcatMenuEntriesEnable
    • TomcatShortcutAllUsers
    • TomcatServiceDefaultName
    • TomcatServiceName
    • TomcatServiceFileName
    • TomcatServiceManagerFileName
    • TomcatAdminEnable
    • TomcatAdminUsername
    • TomcatAdminPassword
    • TomcatAdminRoles
    /C=.../Sおよび/D=と組み合わせて使用することで、Apache Tomcatの完全に設定された無人インストールを実行することが可能です。
  • WindowsサービスとしてTomcatを管理する方法については、WindowsサービスHow-Toを参照してください。

インストーラーは、Tomcatの起動と設定を可能にするショートカットを作成します。Tomcat管理ウェブアプリケーションは、Tomcatが実行されている場合にのみ使用できることに注意することが重要です。

Unix デーモン

Tomcatは、commons-daemonプロジェクトのjsvcツールを使用してデーモンとして実行できます。jsvcのソースtarボールはTomcatバイナリに含まれており、コンパイルする必要があります。jsvcのビルドには、C ANSIコンパイラ(GCCなど)、GNU Autoconf、およびJDKが必要です。

スクリプトを実行する前に、JAVA_HOME環境変数をJDKのベースパスに設定する必要があります。あるいは、./configureスクリプトを呼び出す際に、--with-javaパラメータを使用してJDKのパスを指定できます(例: ./configure --with-java=/usr/java)。

以下のコマンドを使用すると、コンパイルされたjsvcバイナリが$CATALINA_HOME/binフォルダに生成されるはずです。これは、GNU TARが使用されており、CATALINA_HOMEがTomcatインストールのベースパスを指す環境変数であると仮定しています。

FreeBSDシステムでは、ネイティブのBSD makeの代わりにGNU make (gmake)を使用する必要があることに注意してください。

cd $CATALINA_HOME/bin
tar xvfz commons-daemon-native.tar.gz
cd commons-daemon-1.1.x-native-src/unix
./configure
make
cp jsvc ../..
cd ../..

その後、Tomcatは以下のコマンドを使用してデーモンとして実行できます。

CATALINA_BASE=$CATALINA_HOME
cd $CATALINA_HOME
./bin/jsvc \
    -classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar \
    -outfile $CATALINA_BASE/logs/catalina.out \
    -errfile $CATALINA_BASE/logs/catalina.err \
    --add-opens=java.base/java.lang=ALL-UNNAMED \
    --add-opens=java.base/java.io=ALL-UNNAMED \
    --add-opens=java.base/java.util=ALL-UNNAMED \
    --add-opens=java.base/java.util.concurrent=ALL-UNNAMED \
    --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED \
    -Dcatalina.home=$CATALINA_HOME \
    -Dcatalina.base=$CATALINA_BASE \
    -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
    -Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \
    org.apache.catalina.startup.Bootstrap

JVMがクライアントVMではなくサーバーVMをデフォルトで使用する場合、-jvm serverを指定する必要があるかもしれません。これはOSXで確認されています。

jsvcには、デーモン初期化完了後に別のユーザーに切り替える-userなど、他の有用なパラメータがあります。これにより、例えば、Tomcatを非特権ユーザーとして実行しつつ、特権ポートを使用することが可能になります。このオプションを使用し、rootとしてTomcatを起動する場合、rootとして実行中にTomcatが起動しないようにするorg.apache.catalina.security.SecurityListenerのチェックを無効にする必要があることに注意してください。

jsvc --helpは、jsvcの使用方法に関する完全な情報を返します。特に、-debugオプションはjsvcの実行に関する問題をデバッグするのに役立ちます。

$CATALINA_HOME/bin/daemon.shファイルは、jsvcを使用して起動時に/etc/init.dからTomcatを自動的に起動するためのテンプレートとして使用できます。

この方法でTomcatを実行するには、Commons-Daemon JARファイルがランタイムクラスパス上にある必要があることに注意してください。Commons-Daemon JARファイルはbootstrap.jarのマニフェストのClass-Pathエントリにありますが、Commons-DaemonクラスのClassNotFoundExceptionまたはNoClassDefFoundErrorが発生した場合は、jsvcを起動する際にCommons-Daemon JARを-cp引数に追加してください。