Tomcat 7 インストールと設定

CentOS/RHELに Tomcat 7 を yum でインストールする方法と、初期設定、デプロイの方法を書きます。

■ yum リポジトリ追加

準備として yum-priorities が必要

# yum install yum-priorities

yum リポジトリは JPackage

http://www.jpackage.org/
http://www.jpackage.org/browser/rpm.php?jppversion=6.0&id=13826

# rpm -Uvh http://mirrors.dotsrc.org/jpackage/6.0/generic/free/RPMS/jpackage-release-6-3.jpp6.noarch.rpm

■ Tomcat 7 インストール (yum配布版rpm)

パッケージ確認

# yum search tomcat7

インストール

# yum -y install tomcat7-webapps
# yum -y install tomcat7-admin-webapps

★manager,adminパスワード設定
/etc/tomcat7/tomcat-users.xml

  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <user username="tomcat" password="s3cret" roles="manager-gui,admin-gui"/>

自動起動

# chkconfig tomcat7 on
# chkconfig --list tomcat7

起動

# /etc/init.d/tomcat7 start

確認
http://xxx.xxx.xxx.xxx:8080/
http://xxx.xxx.xxx.xxx:8080/manager/status

■ JDK7 (JRE 1.7) インストール

パッケージ確認

# yum search java-1.7

インストール

# yum -y install java-1.7.0-openjdk
# yum -y install java-1.7.0-openjdk-devel

JDKの選択確認

# alternatives --config java

再起動

# /etc/init.d/tomcat7 restart

■ 開発環境設定

JAVA_HOMEとか
自分のユーザープロファイルに設定
(全体に設定するなら /etc/profile )

export JAVA_HOME=/usr/lib/jvm/java
export CLASS_PATH=$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

■ Apache2.2-Tomcat7 連携

AJPコネクタを使ってApache2.2-Tomcat7.0を連携させる設定

現在tomcatが正常に動いていればhttp://localhost:8080/でtomcatにアクセス可能になっていると思います。

ポート番号8080/TCPがtomcatに割り当てられているので、このtomcatへの直接へのアクセスを停止させます。

/etc/tomcat7/server.xml (または $CATALONA_HOME/conf/server.xml)

<!-- これを無効に (無効にしなくてもOK)
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
-->

<!-- これを有効に (デフォルトで有効) -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


<!-- 必要に応じて appBase を設定します

    <Engine name="Catalina" defaultHost="localhost">
      ...
      ... 下のほう Host タグの appBase を設定します

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

apache側のコネクション設定

/etc/httpd/conf.d/tomcat-proxy.conf

ProxyPass /             ajp://localhost:8009/

または

ProxyPass /tomcat/      ajp://localhost:8009/
ProxyPass /manager/     ajp://localhost:8009/manager/
ProxyPass /host-manager/ ajp://localhost:8009/host-manager/

Location の中では、最初の引数は省略され、Location から取得されます。

<Location />
   ProxyPass ajp://localhost:8009/
</Location>

【設定例】apache側

 <Location /tomcat-app/>
   ProxyPass ajp://localhost:8009/tomcat-app/
   ProxyPassReverse http://www.domain.com/tomcat-app/
 </Location>

■ Tomcat アプリケーションのデプロイ(配置)

(1) コンテキストxmlファイルを作成

/etc/tomcat7/Catalina/localhost/アプリケーション名.xml
または
$CATALINA_HOME/conf/Catalina/localhost/アプリケーション名.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/アプリケーション名" reloadable="true" 
    docBase="ここにフルパス" workDir="ここにフルパス/work" />

(2) デフォルトの appBase=”webapps” を変更する方法

強引にデフォルトの appBase=”webapps” を変更してしまう。

/etc/tomcat7/server.xml
または
$CATALONA_HOME/conf/server.xml


    <Engine name="Catalina" defaultHost="localhost">
      ...
      ... 下のほう Host タグの appBase を設定する

      <Host name="localhost"  appBase="/home/username/webapps" << これを変更
            unpackWARs="true" autoDeploy="true">

appBaseの場所にwarファイルを置くと自動的に公開されます。

コメントを残す