読者です 読者をやめる 読者になる 読者になる

S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

開発用サーバの構築(OSからTomcatまで)

技術メモ Tomcat CentOS Linux

CentOS 6.5
Apache HTTP Server 2.2.27
Apache Tomcat 7.0.42
Oracle Java(JDK) 7u45
で、各バージョンはお客さん指定。

CentOSのインストールとパッケージの更新

Minimalモードでインストール。
ネットワークとプロキシの各設定。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network
# vi /etc/profile.d/proxy.sh
# vi /etc/yum.conf
# vi /etc/hosts
# yum update

wgetのインストールとプロキシの設定

# yum install wget
# vi /etc/wgetrc

JDKのダウンロードとインストール

特定のバージョンのダウンロードURLは、Webページのリンクを辿って特定した。

# wget --no-check-certificate --no-cookies - --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u45-b18/jdk-7u45-linux-x64.rpm
# mkdir /usr/java
# cd /usr/java
# rpm -ivh ~/jdk-7u45-linux-x64.rpm

Apache HTTP Serverのダウンロードとビルドとインストール

古いバージョンはビルドからせんといかんのか。。。

  • gcc、libtool(+autoconf、perl)、openssl-develのダウンロードとインストール
# yum search gcc libtool openssl-devel
  • Apache HTTP Serverのダウンロード。
# wget http://archive.apache.org/dist/httpd/httpd-2.2.27.tar.gz
# gzip -d httpd-2.2.27.tar.gz
# tar xvf httpd-2.2.27.tar
  • aprとapr-utilのビルドとインストール。
# cd ~/httpd-2.2.27/srclib/apr
# ./configure --prefix=/usr/local/apr-httpd/
# make
# make install
# cd ~/httpd-2.2.27/srclib/apr-util
# ./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
# make
# make install
  • httpdのビルドとインストール
# cd ~/httpd-2.2.27
#./configure --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/ --enable-cache --enable-disk-cache --enable-mem-cache --enable-logio --enable-headers --enable-ssl --enable-rewrite --enable-so --enable-proxy --enable-proxy-ajp
# make
# make install

実際には「--enable-headers」「--enable-headers」「--enable-headers」を指定し忘れており、apxsコマンドを利用して、各モジュールをコンパイルし、httpd.confにLoadModuleの指定を追記。

オプション 指定
--enable-cache ドキュメントキャッシュを有効
--enable-disk-cache ディスクキャッシュに対応させる
--enable-mem-cache メモリキャッシュに対応させる
--enable-logio 転送量を access.logへ記録する
--enable-headers httpヘッダーのコントロールを有効にする
--enable-ssl SSL/TLSを有効にする
--enable-rewrite アクセスURLのリダイレクトを可能にする
--enable-so DSO(Dynamic Shared Objects)モジュールを有効にする
--enable-proxy Tomcat連携用のproxyを有効にする
--enable-proxy-ajp Tomcat連携用のajpでのproxyを有効にする

80ポートを追記。

# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# /etc/rc.d/init.d/iptables restart
  • Apache HTTP Serverの実行ユーザの作成と所有者の変更
# groupadd apache
# useradd -g apache apache
# chown -R apache:apache /usr/local/apache2
# vi /usr/local/apache2/conf/httpd.conf
User apache
Group apache

ServerName hostname:80
ServerName hostname.domain:80
ServerName (IPアドレス):80
# cp httpd-2.2.27/build/rpm/httpd.init /etc/rc.d/init.d/httpd
# chkconfig --add httpd
# chkconfig httpd on
# vi /etc/rc.d/init.d/httpd
(各パスをインストールディレクトリのパスに設定)
httpd=${HTTPD-/usr/local/apache2/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache2/logs/${prog}.pid}
        CONFFILE=/usr/local/apache2/conf/httpd.conf
# /usr/local/apache2/bin/apachectl -k start

ブラウザからhttp://hostname/にアクセスして"It's Work!"と表示されれば完了。

Apache Tomcatのダウンロードとインストール

# wget https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.42/bin/apache-tomcat-7.0.42.tar.gz
# gzip -d apache-tomcat-7.0.42.tar.gz
# tar xvf apache-tomcat-7.0.42.tar
# mv apache-tomcat-7.0.42 /usr/local/apache-tomcat-7.0.42
  • Apache Tomcatの実行ユーザの作成と所有者の変更
# groupadd tomcat
# useradd -g tomcat tomcat
# chown -R tomcat:tomcat /usr/local/apache-tomcat-7.0.42/
# vi /etc/rc.d/init.d/tomcat
(中身は下に記載)
# mkdir tmp
# cp /usr/local/apache-tomcat-7.0.42/bin/commons-daemon-native.tar.gz  ~/tmp/
# cd tmp
# tar -xvzf commons-daemon-native.tar.gz
# cd commons-daemon-1.0.15-native-src/unix/
# ./configure --with-java=/usr/java/default
# make
# cp jsvc /usr/local/apache-tomcat-7.0.42/bin/
# chown tomcat:tomcat  jsvc /usr/local/apache-tomcat-7.0.42/bin/jsvc
# chkconfig --add tomcat
# chkconfig tomcat on

/etc/rc.d/init.d/tomcatの中身(JavaVMのヒープを1024MBに設定)

#!/bin/sh
#
# tomcat       Startup script for the Apache Tomcat Servlet/JSP container.
#
# chkconfig: - 80 10
# description: The Apache Tomcat Servlet/JSP container.
#

# Source function library.
. /etc/init.d/functions

RETVAL=0

JAVA_HOME=/usr/java/default
CATALINA_HOME=/usr/local/apache-tomcat-7.0.42
JAVA_OPTS="-Xms1024M -Xmx1024M"
DAEMON=$CATALINA_HOME/bin/daemon.sh
LOCKFILE=/var/lock/subsys/tomcat

start() {
        echo -n $"Starting tomcat: "
        $DAEMON --java-home $JAVA_HOME --catalina-home $CATALINA_HOME start
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
                echo_success
                touch $LOCKFILE
        else
                echo failure
        fi
        echo
        return $RETVAL
}

stop() {
        echo -n $"Shutting down tomcat: "
        $DAEMON --java-home $JAVA_HOME --catalina-home $CATALINA_HOME stop
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
                echo_success
                rm -f $LOCKFILE
        else
                echo failure
        fi
        echo
        return $RETVAL
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        stop
        start
        ;;
  status)
        status $CATALINA_HOME/bin/jsvc
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 3
esac

exit 0
  • 一時的に8080ポートを開けてTomcatの稼働確認
# /etc/rc.d/init.d/tomcat start
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
# /etc/rc.d/init.d/iptables restart

ブラウザからhttp://hostname:8080/にアクセスして、Tomcatの管理画面のTOPが表示されれば完了。
その後、一時的に追記したの8080ポートの行を削除し、ファイアウォールを再起動。

8080ポートの定義をコメントアウト

# vi /usr/local/apache-tomcat-7.0.42/conf/server.xml
<!--
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
-->

httpd.confに、全てのリクエストをTomcatに連携する設定を追記。
「mod_proxy」と「mod_proxy_ajp」を追加コンパイルしたため、LoadModuleの記述も追記。

# cd /usr/local/apache2/modules/
# /usr/local/apache2/bin/apxs -i -a -c ~/httpd-2.2.27/modules/proxy/mod_proxy.c ~/httpd-2.2.27/modules/proxy/proxy_util.c
# /usr/local/apache2/bin/apxs -i -a -c ~/httpd-2.2.27/modules/proxy/mod_proxy_ajp.c ~/httpd-2.2.27/modules/proxy/ajp_*.c
# vi /usr/local/apache2/conf/httpd.conf
LoadModule proxy_module       modules/mod_proxy.so
LoadModule proxy_ajp_module   modules/mod_proxy_ajp.so
<Location / >
  ProxyPass ajp://localhost:8009/
</Location>
  • Tomcatアプリケーションマネージャにログインするためのアカウントを追加
# vi /usr/local/apache-tomcat-7.0.42/conf/tomcat-users.xml
    <role rolename="admin"/>
    <role rolename="manager-gui"/>
    <user username="takuso" password="takuso" roles="admin,manager-gui"/>
# /etc/init.d/tomcat restart
||


- httpdとTomcatを再起動して連携を確認
>||
# /etc/init.d/tomcat restart
# /etc/init.d/httpd restart

ブラウザからhttp://hostname/にアクセスして、Tomcatの管理画面のTOPが表示されれば完了。