2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

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/ でゲットできる。

以上

コメント