DebianとTomcat

Debian に Tomcat7 をインストールする。

事前準備

ビルドする必要があるので、事前にビルドに必要なパッケージを導入しておく。

yes | apt-get install build-essential

インストール

# 作業ディレクトリの作成
mkdir /tmp/tomcat-installation-working-dir
cd /tmp/tomcat-installation-working-dir

# 変数定義
VERSION="7.0.42"
JDK_PATH="/opt/java/jdk1.7"
GROUP_ID="10001"
USER_ID="10001"
GROUP="tomcat"
USER="tomcat"

# Tomcat のダウンロード
wget -O apache-tomcat-${VERSION}.tar.gz http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-7/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz

# tomcat group/user の作成
groupadd -g ${GROUP_ID} ${GROUP}
useradd --uid ${USER_ID} --gid ${GROUP_ID} --shell /bin/sh -d /opt/tomcat ${USER}

# tomcat の展開とビルド
tar zxf apache-tomcat-${VERSION}.tar.gz
cd apache-tomcat-${VERSION}/bin
tar zxf commons-daemon-native.tar.gz
cd commons-daemon-1.0.*-native-src/unix
./configure --with-java=${JDK_PATH}
make
chmod 744 jsvc
mv jsvc ../..
cd ../../..
rm -rf bin/commons-daemon-1.0.*-native-src

# opt 配下に展開
mkdir /opt/tomcat
mv /tmp/tomcat-installation-working-dir/apache-tomcat-${VERSION} /opt/tomcat/apache-tomcat-${VERSION}
ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/tomcat
chown -R tomcat:tomcat /opt/tomcat

動作確認

  • /opt/tomcat/tomcat/conf/server.xml ファイル内で 8080 番ポートが指定されている個所について、実際に利用したいポートを指定する。以下は 80 番ポートを利用する例:
vi /opt/tomcat/tomcat/conf/server.xml
:%s/8080/80/cg
/opt/tomcat/tomcat/bin/startup.sh
telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.1 200 OK

レスポンスの先頭行がHTTP/1.1 200 OK が表示されれば正常。

/opt/tomcat/tomcat/bin/shutdown.sh

tomcat manager の権限設定

/opt/tomcat/apache-tomcat-${VERSION}/conf/tomcat-users.xml を以下のように変更する。

<?xml version="1.0" encoding="utf-8"?>
<tomcat-users>
  <user username="admin" password="tomcatadmin" roles="manager-gui,admin-gui"/>
</tomcat-users>
  • 不要な Web Application の削除
rm -rf /opt/tomcat/apache-tomcat-${VERSION}/webapps/docs/
rm -rf /opt/tomcat/apache-tomcat-${VERSION}/webapps/examples/
rm -rf /opt/tomcat/apache-tomcat-${VERSION}/webapps/ROOT/

# 以下は必要なら削除しない
rm -rf /opt/tomcat/apache-tomcat-${VERSION}/webapps/host-manager/

セッション情報の永続化の禁止

  • コンテキストの再起動時にセッション情報を引き継ぎたいという要求が無い場合は永続化を禁止する。デフォルトでは /opt/tomcat/apache-tomcat-${VERSION}/work/Catalina/localhost/コンテキスト名/SESSIONS.ser ファイルにセッション情報が格納されるが、以下の設定を行うとそれが作成されなくなる。

/opt/tomcat/apache-tomcat-7.0/conf/context.xml を編集し、以下の部分をアンコメントする。

<Manager pathname="" />

自動起動設定

  • jsvc による起動をサポートするため、daemon.sh を /etc/init.d/tomcat ファイルを配置
cp /opt/tomcat/apache-tomcat-${VERSION}/bin/daemon.sh /etc/init.d/tomcat
  • service 用の情報を /etc/init.d/tomcat に以下のように追加
# resolve links - $0 may be a softlink

### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: start and stop tomcat
# Short-Description: start and stop tomcat
### END INIT INFO

ARG0="$0"
  • 環境設定ファイルの配置

daemon.sh の内部では、以下の優先度で設定ファイルを読み込みます。

$CATALINA_BASE/bin/setenv.sh
$CATALINA_HOME/bin/setenv.sh

そのため、/opt/tomcat/apache-tomcat-${VERSION}/bin/setenv.sh を作成します。
以下例:

#!/bin/bash

export JAVA_HOME=/opt/java/jdk1.7
export JAVA_OPTS="-server -Xmx256m -Xms256m"
export CATALINA_OPTS=""
  • service に登録
update-rc.d tomcat start 90 2 3 4 5 . stop 10 0 1 6 .

tomcat のインストールと最低限の設定はこんな感じ。設定系は別記します。

後片付け

rm -rf /tmp/tomcat-installation-working-dir