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/ でゲットできる。
以上
コメント