いい質問だと思います。
私もそれを混乱させた。数分前に(しばらくして)Tomcatをインストールしましたが、Tomcatは2つの異なる "webapps"の場所であることに気付きました。
/ usr/share/Tomcat6/webapps/default_root// var/lib/Tomcat6/webapps/ROOT /
両方の内容は同じですが、いずれもシンボリックリンクではありません。
Tomcatを起動すると、次のように表示されます。
見積もり:
これはデフォルトのTomcatホームページです。ローカルファイルシステムの/var/lib/Tomcat6/webapps/ROOT/index.htmlにあります。
Tomcat6のベテランは、このTomcatのシステムインスタンスが/ usr/share/Tomcat6のCATALINA_HOMEおよび/ var/lib/Tomcat6のCATALINA_BASEとともにインストールされることを知って喜んでいるでしょう。したがって、この情報に基づいて、/ usr/share/...フォルダー後方互換性のために保持されていましたよね?
しかし、あなたが投稿したライブラリによれば、ライブラリはCATALINA_BASEではなくCATALINA_HOMEから読み込まれています。
おそらく、更新後に他のシステムが動作しなくなるのを防ぐために、まだデフォルトの参照を保持していますか?
良い観察!
更新:
私はこれを/usr/share/Tomcat6/bin/catalina.shで読みました:
見積もり:
# 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.
/etc/init.d/Tomcat6を読むと:
(はじめに)
CATALINA_HOME=/usr/share/$NAME
(その後...)
# Directory for per-instance configuration files and webapps
CATALINA_BASE=/var/lib/$NAME
ただし、Sudo /usr/share/Tomcat6/bin/startup.shを使用してTomcatを手動で起動しようとすると(かなり前にしたように)
表示されます:
見積もり:
Using CATALINA_BASE: /usr/share/Tomcat6
Using CATALINA_HOME: /usr/share/Tomcat6
Using CATALINA_TMPDIR: /usr/share/Tomcat6/temp
Using JRE_HOME: /usr
touch: cannot touch `/usr/share/Tomcat6/logs/catalina.out': No such file or directory
/usr/share/Tomcat6/bin/catalina.sh: 357: cannot create /usr/share/Tomcat6/logs/catalina.out: Directory nonexistent
では、なぜここでCATALINA_BASEがCATALINA_HOMEと同じに設定されているのでしょうか?
/ usr/share/Tomcat6/logs /は存在しませんが、/ var/lib/Tomcat6/logs /に存在します
Init.dスクリプトからTomcatを起動すると、ログが/ var/lib/...に書き込まれていることがわかります。だからそこから始めたほうがいい。
私はTomcatの専門家ではありませんが、これと同じ問題を抱えていて、次のコマンドでサーバーを再起動することができました:Sudo /etc/init.d/Tomcat6 restart
CATALINA_HOME-「org.Apache.catalina.startup.Bootstrap」に、サーバーを実行するための依存関係である必要な/ lib/binおよびその他を探す場所を指示します。基本的に、Tomcatインストールのホームディレクトリです。
CATALINA_BASE-特定のディレクトリ構造がスキャンされることを期待します(一度開始される)。たとえば、/ confは、webアプリケーションに固有のserver.xmlおよびweb.xmlを検索します。そのディレクトリ構造とコンテンツがあれば、CATALINA_BASEはどのディレクトリでもかまいません。
私はそれを見ました。
適切でかわいい方法は、「setenv.sh」スクリプトをCATALINA_HOME/binフォルダー(場合によっては「/usr/share/Tomcat6/bin/setenv.sh」)に作成することです。
Setenv.shの内容:
#!/bin/sh
export CATALINA_BASE=/new/catalinabase/path
そのため、catalina.shを自分で変更する必要はありません。 setenv.shがbinディレクトリに存在する場合、catalina.shはそれを自動的に実行します。
Startup.sh(またはcatalina.sh)でCATALINA_HOMEとCATALINA_BASEが同じである理由を説明することはできません。これは本当に奇妙です。
もちろん、init.dスクリプトを使用してTomcatを起動できます。ただし、startup.sh/catalina.shを使用して起動することもできます(デバッグ用など)。
回避策/ハックとして、/ usr/share/Tomcat6/bin/catalina.shの先頭に次の行を追加することで問題を修正できます
export CATALINA_BASE=/var/lib/Tomcat6