ページ

2013年3月22日金曜日

CentOSにApache、Java、Tomcatをインストールする

レンタルサーバーを借りたので、WEBサーバーの設定をしてみた。

1.Apacheのインストール
    yum -y install httpd



2.サーバー起動時にApacheも立ち上がるように設定
    chkconfig httpd on



3.設定ファイルの修正
    vi /etc/httpd/conf/httpd.conf

3-1.ServerTokensディレクティブを変更
 必要最小限に留める。
    ServerTokens Prod    (デフォルト:ServerTokens OS)

3-2.ServerSignatureディレクティブを変更
    ServerSignature Off    (デフォルト:ServerSignature On)

3-3.ディレクトリ一覧を表示しないように変更
デフォルトだと以下のようになっている。

    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

    Options Indexes FollowSymLinks
を、以下のようにIndexesの前にマイナス「-」をつける。
    Options -Indexes FollowSymLinks

ここまでの修正で設定ファイルに問題ないかチェック

    service httpd configtest
Apacheを起動する。
service httpd start(再起動させたい場合は、service httpd restart)
ブラウザで自身のサーバーのURL(IP)にアクセスすればApacheのテストページが表示される!






4.ドキュメントルートを変更する。
 デフォルトだと、/var/www/htmlになっているが、rootになってるし扱いが面倒なので、
 とあるユーザ(hoge)のホーム配下にディレクトリを切ってそちらに変更。
    vi /etc/httpd/conf/httpd.conf
で以下2箇所を編集する。
#DocumentRoot "/var/www/html"
DocumentRoot "/home/hoge[ユーザ名]/html"
#


配下に適当なHtmlを置いておく。
apacheの再起動(service httpd restart)。

※ここではまった!
/home/hoge[ユーザ名]の権限により403が返ってきて表示されない場合があるみたい。。。
/home/hoge[ユーザ名]/htmlのhtmlディレクトリの権限を755にしただけではダメで、そのユーザのホームディレクトリの権限もチェック!



5.ベーシック認証を設定する。
 テスト時など、他の人が見れないよう簡易的に保護するためベーシック認証をかける。

#htpasswd -c /etc/httpd/.htpasswd [認証画面のユーザ名にあたる名前] 
New password: [なんか入力]
Re-type new password:[なんか入力] 
Adding password for user ...
設定ファイルを修正
    vi /etc/httpd/conf/httpd.conf

今回はルートからすべてベーシック認証を求めるようにするので、


AuthType Basic
AuthName "画面に表示されるメッセージ"
# 上記で作成したファイルを指定する
AuthUserFile /etc/httpd/.htpasswd
# 上記
Require user [認証画面のユーザ名にあたる名前]

apacheの再起動(service httpd restart)。
...







6.Tomcatのインストール
ダウンロード
    wget http://ftp.tsukuba.wide.ad.jp/software/apache/tomcat/tomcat-7/v7.0.37/bin/apache-tomcat-7.0.37.tar.gz
解凍
    tar zxvf apache-tomcat-7.0.37.tar.gz
移動
    mv apache-tomcat-7.0.37 /usr/local/apache-tomcat-7.0.37
シンボリックリンクを作成する。
    cd /usr/local
    ln -s apache-tomcat-7.0.37 tomcat
ユーザ変更
rootで実行しないようユーザを変更する。
    chown -R tomcat.tomcat[変更するユーザ] /usr/local/tomcat/
JAVA_HOMEの追加
    vi /usr/local/tomcat/bin/catalina.sh
    JAVA_HOME=/usr/java/default
自動起動スクリプトも作っておく。
vi /etc/init.d/tomcat


#!/bin/sh

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

# Source networking configuration.
. /etc/sysconfig/network

CATALINA_HOME=/usr/local/tomcat
TOMCAT_SCRIPT=$CATALINA_HOME/bin/catalina.sh
TOMCAT_USER=tomcat

[ -f $TOMCAT_SCRIPT ] || exit 0

# See how we were called.
case "$1" in
    start)
        # Start daemons.
        if [ -f /var/lock/subsys/tomcat ] ; then
            echo "Tomcat already started!"
            exit 1
        fi
        echo -n "Starting Tomcat: "
        su -s /bin/bash - $TOMCAT_USER -c "$TOMCAT_SCRIPT start"
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat
        ;;
    stop)
        # Stop daemons.
        if [ ! -f /var/lock/subsys/tomcat ] ; then
            echo "Tomcat already stopped!"
            exit 1
        fi
        echo -n "Shutting down Tomcat: "
        $TOMCAT_SCRIPT stop
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat
        ;;
    status)
        status tomcat
        exit $?
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $TOMCAT_PROG {start|stop|status|restart}"
        exit 1
esac

exit 0
実行権限を付与する。
    chmod +x /etc/init.d/tomcat
起動の確認。
    /etc/init.d/tomcat start
こんなんが出ればOK
Starting Tomcat: Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
自動起動設定
# chkconfig tomcat on
# chkconfig --list tomcat
tomcat          0:off   1:off   2:on    3:on    4:on    5:on    6:off
ApacheとTomcatの連携
まずは、apacheに以下を設定
vi /etc/httpd/conf.d/httpd-proxy.conf
以下の記述を追加
ProxyPass /examples/ ajp://localhost:8009/examples/
Tomcat側の設定
vi /usr/local/tomcat
以下をコメントアウトする。(8080で接続できないようにする。)
    
以下がコメントアウトでないことを確認する。
     
ここで両方再起動をかけ、 http://[domain]/examples/でアクセスすればつながるはず!

0 件のコメント:

コメントを投稿