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) を入力します。 マネージャアプリケーションが起動されます。
"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 に記録されます。

