Kozupon.com    
 
 Apache(Web)サーバの構築(RPMパッケージ)!


Unixの代表的なWebサーバモジュール、Apacheのセットアップを説明する。
ここでは、特にインストール方法ではなくhttpd.confの設定について焦点を絞ってみたい。

構築前提条件 )
ホストネーム:hoge
ドメイン名:hoge.org
DNSは設定されていることが前提。
IPアドレス:210.111.xxx.xxx

いきなり、Apacheの起動 (Apacheのバイナリモジュールがインストールしてあることが前提)


1.Apacheの起動確認

# /etc/rc.d/init.d/httpd start

でApacheを起動してみる。

■インターネットエクスプローラで www.hoge.org もしくは hoge.hoge.org にアクセスしてみる。
■Apacheのデフォルト画面が出たら正常にhttpdが動いている。


2./etc/httpd/conf/httpd.confの設定

■バージョン1.3からApacheの設定は、全てhttpd.confに集約された。したがって、設定は全てこのファイルによって行う。
■Port HTTPDポートを確認する。80が正解、8080やその他になっている場合は訂正する。
■User,Group Apacheの実行する権限をユーザ・グループについてそれぞれ設定する。デフォルトでは、両方ともnobodyになっているのでnobodyが存在する必要がある。
■ServerAdmin このサーバの管理者を示す。デフォルトでは、root@localhostになっているので環境に合わせて訂正する。また、webmaster宛にメールがくることも考え、次のように設定しておくと便利だ。

# vi /etc/aliases

省略
webmaster : <自分のログイン名>あるいは root
省略

# newaliase       ←必ずこのコマンドを実行して、エイリアス情報を有効にする。

■DocumentRootがデフォルトで/home/httpd/htmlになっているのでフォルダを変更したい場合は訂正。ドキュメントを置くべき/home/httpd以下のディレクトリは全てrootの所有でパーミッションもowner(root)のみが書き込めるようになっている。
■したがって、セキュリティの意味もかねてWebページ管理のグループを別に作っておくことが賢い。名前をwebadminグループとして所有権を与える。

# vi /etc/group

省略
webadmin:x:1001:<自分のログイン名>
省略

■/home/httpd以下のディレクトリについて、グループをwebadminに変え、グループパーミッションも開けておく。

# chgrp webadmin /home/httpd/*
# chmod g+w /home/httpd/*

■DirectryIndex http://www.hoge.orgにアクセスしたときに、最初に呼び出されるファイル名を設定する。例として、index.html、index.htmなど。
■UserDir ユーザのホームディレクトリ参照ホルダを規定する。デフォルトでは、public_htmlに設定されている。変更したい場合は、訂正する。例えば、

<IfModule mod_dir.c>
  DirectoryIndex index.htm index.php index.php3 index.html
</IfModule>

■public_htmlにした場合、ユーザの各ホームにpublic_htmlフォルダを作る。そのとき、パーミッションを設定することを忘れてはならない。

# chmod o+x /home

一応、httpdを再起動して確認する。

# /etc/rc.d/init.d/httpd restart

でユーザホームのページがブラウズ出来るか、確認する。

■User、Groupセクションを以下であることを確認する。

User nobody
Group nobody

■SeverNameを以下の設定にする。

ServerName localhost

■AccessControl アクセス制御を設定する。<Directry ディレクトリ名>〜</Directry>で、そのディレクトリにアクセス制御をすることができる。

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory "/home/httpd/cgi-bin">
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

<Directory “/home/httpd/html”>
     Options FollowSymLinks ExecCGI
     Order allow,deny
     Allow from all
</Directory>

<Directory /home/*/public_html>
      AllowOverride FileInfo AuthConfig Limit
      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
      <Limit GET POST OPTIONS PROPFIND>
            Order allow,deny
            
Allow from all
      </Limit>
      <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
            Order deny,allow
            Deny from all
      </Limit>
</Directory>

☆ <Directory “/home/httpd/html”>はドキュメントルート
☆ ExecCGIはCGI許可
☆ <Directory /home/*/public_html>はユーザディレクトリ
☆ IncludesNoExecはCGI不可

■CGIを使うディレクトリとして、/home/httpd/cgi-binが用意されている。それ以外のディレクトリでCGIを使うには、以下の設定が必要(コメント担ってる場合は、コメントを外す)。

AddHandler cgi-script .cgi

■通常httpd.confではSSIは許可されてない。SSIを使うには、以下を追加する。

<Directory /home/*/public_html>
        Options 前略 +Includes ←この記述を追加する。
</Directory>

■apacheをリスタートして、http://210.111.***.***/でapacheの画面が出れば成功!!!

# /etc/rc.d/init.d/httpd restart

■ログファイルの分析

ログファイルを月別・曜日別・時刻別に、それぞれ管理できる。管理するためには、analogというツールを使う。詳細は、 http://www.analog.cx/ でゲットできる。

以上


 
 
 



Copyright 2005 Kozupon.com.