[Tomcat]「仮想ホストマネジャ」を起動
◆仮想ホストマネジャとは?
Tomcat 4.1.xから導入されたGUI管理ツールです。
仮想ホストマネジャ(Virtual Host Manager)は、
略してVHMと書かれたりします。
主な機能としては、この画面からserver.xmlを触らずに、
仮想ホストを追加することができます。
ただ、server.xmlには記述されないため、
サーバーを停止したら追加した仮想ホストも消えます。
◆本記事のゴール
Webアプリケーションマネジャの起動についての、
説明も以下にあります。
よければ、こちらの記事もご覧ください。
設定内容は大体同じですが、こちらも合わせて読むと、
より理解しやすいかと思います。
手順
①マネージャ画面へアクセス用のURLの設定
作成方法ですが、
server.xmlを開き、
<Engine>
<Host >
</Host>
</Engine>
Hostタグの中に、
下記、のコードを追加します。
<Context docBase=“(Tomcatを配置してるディレクトリ)/webapps/host-manager" path="/host-manager" privileged="true" reloadable="true"/>
(Tomcatを配置してるディレクトリ)は、
Tomcatフォルダ内にあるwebappsまでのフルパスです。置き換えてください。
tomcatのフォルダの中のwebappsフォルダの中にあるmanagerフォルダの中に、
Webアプリマネージャを開くために必要なjspファイルなどがあります。
または、
以下の書き方でも良いです。
<Context docBase="${catalina.home}/webapps/host-manager" path="/host-manager" privileged="true" reloadable="true"/>
server.xmlに該当コードの追加後は、下記のようになります。
※もともと書き込まれていた余計なコメントは削除しています。
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
<Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<GlobalNamingResources>
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="/Users/genki/apache-tomcat-8.5.78/conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
</GlobalNamingResources>
<Service name="Catalina">
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
<Engine defaultHost="localhost" name="Catalina">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
<Context docBase="demo" path="/demo" reloadable="false" source="org.eclipse.jst.jee.server:demo"/>
<!--追加箇所-->
<Context docBase="${catalina.home}/webapps/host-manager" path="/host-manager" privileged="true" reloadable="true"/>
<!--ここまで-->
</Host>
</Engine>
</Service>
</Server>
※設定を反映させるには、サーバーを再起動して下さい。
②マネージャ画面のログイン用ユーザー作成
マネージャ画面を開くには、
アクセス用の権限をもったユーザーをあらかじめ作成しておく必要があります。
ユーザーの作成方法ですが、
tomcat-users.xml開き、
<tomcat-users>
</tomcat-users>
の箇所に、
以下のコードを追加します。
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user password="hoge" username="hoge" roles="admin-gui,manager-gui"/>
<user username="admin" password="admin" roles="admin-gui"/>
<user username="manager" password="manager" roles="manager-gui"/>
ここでは、違う権限の持たせ方をしたuserを3つ作っています。
パスワードはどれも、ユーザ名と同じにしています。
ユーザ名とパスワードは任意で決めてください。
権限についてですが、
「hoge」⇨ admin権限+manager権限
「admin」⇨ admin権限
「manager」⇨ manager権限
と与えています。
マネージャ画面に対する、
ログインに必要な権限の対応は以下のようになっています。
・Webアプリケーションマネージャ⇨admin権限 or manager権限
・仮想ホストマネージャ⇨admin権限
tomcat-users.xmlファイルに、コードを追加すると下記のようになります。
※もともと書き込まれていた余計なコメントは削除しています。
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users version="1.0" xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd">
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user password="hoge" username="hoge" roles="admin-gui,manager-gui"/>
<user username="admin" password="admin" roles="admin-gui"/>
<user username="manager" password="manager" roles="manager-gui"/>
</tomcat-users>
※設定を反映させるには、サーバーを再起動して下さい。
③Webブラウザからアクセス。
設定を反映させるために、
サーバーを再起動してから行ってください。
にWebブラウザからアクセス
ログイン認証がでるので、
先程設定した
usernameは、「hoge」
passwordも、「hoge」
を入力しましょう。
が表示されたら、OKです。
◆おまけ(トップページ(root)の表示)
<Context docBase="${catalina.home}/webapps/ROOT" path="/root" reloadable="true"/>
で、設定すれば、
にアクセスすると、
Tomcatのトップ画面が開きます。
参考
・2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携
Discussion