HowTos/Tomcatとの統合

出典: ScalixWikiJP

Scalix Wiki -> How-Tos -> HowTos/Tomcatとの統合

このセクションは HowTos/Tomcat(米国サイト)をもとに作成しています。

目次

Tomcat をリスタートせずにウェブアプリケーションの設定を変更する

Scalix Web Access (/webmail) や、プラットフォームAPI (/api) などの Scalixウェブアプリケーションは、設定値を変更する場合、再起動させる必要があります。その方法の1つは、scalix-tomcat サービスを再起動させることです。しかし、設定が変更されたときに Tomcat を再起動させることは、不便で不適切である場合があります。そこで、Tomcat を再起動させなくとも、アプリケーションの web.xml を touch したり、Tomcat 管理アプリケーションをインストールして使用することで、アプリケーションを個別に再起動させることができます。

Scalixウェブアプリケーションは、Scalixフォルダにある設定ファイルを読み込みます。例えば Scalix Web Access は、Scalixサーバが、/var/opt/scalix/sm にインストールされた場合、/var/opt/scalix/sm/webmail/swa.properties になります。


web.xml を touch してアプリケーションを再起動する

まず、アプリケーションの状況を監視するため、tomcat のログを tail します。

[root@scalixvm WEB-INF]# tail -f /var/opt/scalix/sm/tomcat/logs/catalina.out &

Tomcat は、web.xml が変更されると常に自動的に設定内容を展開(deploy)します。単に、そのファイルに touch するだけで、Tomcat は swa.properties をリロードします。

 [root@scalixvm WEB-INF]# touch /var/opt/scalix/sm/tomcat/webapps/webmail/WEB-INF/web.xml

しばらく経つと、Scalix Web Access で設定値が再設定(redeployed)されたことが Tomcat のログに示されます。

Config checkResources
INFO: Reloading context [/webmail]
shutting down Scalix Web Access
initializing Scalix Web Access
SWA:WARN - cannot locate log4j properties file at: /var/opt/scalix/sm/webmail/log4j.properties
SWA:reading configuration @ /var/opt/scalix/sm/webmail/swa.properties
done initializing Scalix Web Access

同様の方法で、プラットフォームAPI、インデックス検索、caa、 モバイルクライアント、res、管理コンソールでも設定値を再設定することができます。

[root@scalixvm WEB-INF]# touch /var/opt/scalix/sm/tomcat/webapps/api/WEB-INF/web.xml
[root@scalixvm WEB-INF]# touch /var/opt/scalix/sm/tomcat/webapps/sis/WEB-INF/web.xml
[root@scalixvm WEB-INF]# touch /var/opt/scalix/sm/tomcat/webapps/caa/WEB-INF/web.xml
[root@scalixvm WEB-INF]# touch /var/opt/scalix/sm/tomcat/webapps/m/WEB-INF/web.xml
[root@scalixvm WEB-INF]# touch /var/opt/scalix/sm/tomcat/webapps/res/WEB-INF/web.xml
[root@scalixvm WEB-INF]# touch /var/opt/scalix/sm/tomcat/webapps/sac/WEB-INF/web.xml


Tomcat マネージャを使用してアプリケーションを再起動する

Tomcat マネージャアプリケーションは、ウェブアプリケーションを開始させたり、リロードしたりすることができる便利なウェブインタフェースです。便利ですが、構築には少し手間がかかります。

マネージャアプリケーションのダウンロードとインストール

マネージャアプリケーションを含む Tomcat core を Scalixサーバホストにダウンロードします。ダウンロードページ を開き、"Core" の下にある "Binary Distributions" のリンクを見つけてください。好みにより、.zip または .tar.gz アーカイブのリンクをクリックしてください。

アーカイブファイルを展開し、Tomcat フォルダにマネージャアプリケーションをコピーします。

[root@scalixvm ~]# tar xzvf apache-tomcat-5.5.23.tar.gz
[root@scalixvm ~]# cp -r apache-tomcat-5.5.23/server/webapps/manager /var/opt/scalix/sm/tomcat/webapps/

設定ファイル apache-tomcat-5.5.23/conf/Catalina/localhost/manager.xml を編集します。docBase を Scalixサーバの環境にあわせて変更します。

<Context docBase="/var/opt/scalix/sm/tomcat/webapps/manager"
        privileged="true" antiResourceLocking="false" antiJARLocking="false">
 <ResourceLink name="users" global="UserDatabase"
               type="org.apache.catalina.UserDatabase"/>
</Context>

設定ファイルを Tomcat フォルダにコピーします。

[root@scalixvm ~]# cp apache-tomcat-5.5.23/conf/Catalina/localhost/manager.xml /var/opt/scalix/sm/tomcat/conf/Catalina/localhost/


マネージャアプリケーションへのアクセス権を付与します

次に、指定のURLへのアクセスを許可し、アプリケーションにアクセスできるユーザを作成します。 ドキュメントConfiguring Manager Application Accessも参考にしてください。 この例の場合、ファイル /var/opt/scalix/sm/tomcat/conf/tomcat-users.xml を編集し、ユーザ名 "admin" 、パスワード "password" を追加するため、次の1行を追加します。

<user username="admin" password="password" roles="manager"/>

また、マネージャアプリケーションが "/manager" パスでアクセスできるように、/var/opt/scalix/sm/tomcat/conf/server.xml に次のセクションを追加します。この設定は、server.xml 中の Service name="Catalina" の設定部分に追加します。

 <Connector port="8080" maxHttpHeaderSize="8192"
            maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
            enableLookups="false" redirectPort="8443" acceptCount="100"
            connectionTimeout="20000" disableUploadTimeout="true"
            URIEncoding="UTF-8">
            <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="127.0.0.1"/>
 </Connector>

Tomcat を再起動し、設定の変更を有効にします。

/etc/init.d/scalix-tomcat restart


/webmail アプリケーションの再ロード

ウェブブラウザでURL http://localhost:8080/manager/html を入力します。(リモートからアクセスする場合は、localhost はサーバ名に置き換えてください) tomcat-users.xml で設定したユーザ名とパスワード (例の場合は、admin/password) を入力します。 マネージャアプリケーションが起動されます。

Image:ManagerApp.png

"Applicatio" タブで、/webmail アプリケーションの行を探し、"Reload" をクリックして、アプリケーションを再ロードします。swa.properties に変更を行っている場合は、その内容が反映されます。


Tomcat を root 以外のユーザで起動させる

セキュリティの観点から、Tomcat は root 以外のユーザで起動させるのが好ましいです。事実、OS ディストリビューションに付属する Tomcat パッケージはそのようになってきています。 Scalix に関しては、一部問題があります。(Scalix 管理コンソールシステムの一部となっている)RES ウェブアプリケーションが Scalix 管理コマンド ("om-commands") を実行する必要があるためです。これらのコマンドには、スーパーユーザ/root 権限で実行されるものが含まれています。

そのため、Scalix 10.0.0 以降のバージョンでは、次の設定を行ってください。

1. RES が起動している全てのマシン上で、sudo パッケージをインストールしてください。

2. /etc/sudoersファイルに次の行を設定してください。(注意:必ず1行で記述してください)

<user> <hostname> = NOPASSWD : /opt/scalix/bin/*, /opt/scalix/diag/* , /bin/rpm, /usr/bin/dpkg, /usr/bin/tail, /bin/df

<user> のところは、Tomcat を起動するユーザ名としてください。<hostname> は Scalix サーバのホスト名にしてください。

3. ファイル /var/opt/scalix/XX/res/config/res.properties に次のパラメータを追加(または変更)してください。(XX はホスト名により異なります)

res.sudo.commands.mode=true

4. Tomcat を再起動してください。

Scalix コマンドへの全てのアクセスが、sudo により syslog に記録されます。