Jul 032007
 

サイトのTopをTomcatで処理させたい場合、ROOTとしてウェブアプリケーションを配備すればよい、ということを書きました(サイトのTop自身もTomcatに処理させる)。

でも、アプリケーションをビルドする際にROOT.warとするのもちょっとイヤだったので、プロジェクト名.warで固めたアーカイブ(someproject.war)をROOTとして利用できる方法にチャレンジしてみました。

サイトURLはhttp://www.example.com/と仮定します。

server.xmlへの仮想ホスト設定

Hostコンテナでwww.example.comを定義します。

<Host name="www.example.com" deployXML="false"
         appBase="/var/tomcat5/sites/www.example.com"
         unpackWARs="true" autoDeploy="true" 
         xmlValidation="false"
         xmlNamespaceAware="false">
</Host>

ROOT.xmlを用意

docBaseにwarファイルへの絶対パスを指定したROOTコンテキストファイルを用意します。

<Context path="" docBase="/usr/local/webapps/someproject.war" debug="0" reloadable="true">
</Context>

warファイルの置き場所はHostコンテナのappBaseには含めないようにします。
ROOT.xmlの置き場所は$CATALINA_HOME/conf/Catalina/www.example.com/配下になります(厳密には$CATALINA_HOME/conf/[enginename]/[hostname]/以下です)。

これでTomcatを起動すると/usr/local/webapps/someproject.warが/var/tomcat5/sites/www.example.com/ROOTとして展開されて、www.example.comのサイトTopとして利用できるようになります。

ちなみにこの応用として、Context定義をROOT.xmlではなくsubdir.xmlで用意すれば、www.example.com/subdirとして配備することも可能になります。

Sorry, the comment form is closed at this time.