■ HTTP server Apache のインストール


debian では HTTP server Apache1.3.9-14 が用意されていました。 今回の設定は全てに共通しますがコンパイルなどは行わず、potato(stable) で用意されたバイナリーパッケージを使うことを前提としています。

apt-get で apache をインストールする。

# apt-get install apache

$ dpkg -l apache

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ 名前     バージョン    説明
+++-==============-==============-============================================
ii apache    1.3.9-14     Versatile, high-performance HTTP server





■ 設定ファイルの編集


Apache の設定にあたり、いろんなサイトで勉強してみました。そこでよく目にしたのは「設定ファイルを一つに統一する」でした。おっと!ここでブレーキが(?_?)

JAPACHE(ジャパッチ)からの引用 http://japache.infoscience.co.jp/

次に、サーバの設定ファイルを編集します。3つの設定ファイルで directive を設定します(訳注: Apache1.3.4からは設定ファイルを一つに統一することが推奨されています。Apache1.3.4以降ではデフォルトで httpd.confのみを使います)。デフォルトでこれらのファイルは、confディレクトリに配置され、srm.conf、 access.conf、httpd.conf です。念のため、配布の conf ディレクトリには同じ内容のファイル、srm.conf-dist、 access.conf-dist、httpd.conf-distがあります。-distなしでその名前のこれらのファイルをコピーするか、名前を変えてください。それからそれぞれのファイルを編集してください。それぞれのファイルにあるコメントを注意深く読んでください。これらのファイルの正確な設定に失敗すると、サーバが動かなくなったり、動作が不安定になったりします。 conf ディレクトリには mime.types という追加ファイルがなければなりません。このファイルは通常、編集の必要がありません。
最初に httpd.conf を編集してください。これはサーバに関する一般的な属性を設定します; ポート番号や起動ユーザ等です。次にsrm.conf ファイルを編集してください; これはドキュメントツリーの root、server-parsed HTML や内部的なイメージマップの解析のような特別な機能等を設定します。最後に access.conf ファイルを編集してください。アクセスに関する基本事項を設定します。

....と、あります。どんなファイルが存在するのか確認すると

$ dir /etc/apache -F
access.conf   conf@    httpd.conf   mime.types@
cron.conf     srm.conf
....でした。


JAPACHE からの引用では、Apache 1.3.4 以降 httpd.conf に統一とありますよね。
しかし、他のサイトでは 1.3.11 以降となっているのを見ました。
うぅぅぅぅ。 わからん!(^^;)
ちっとも進まないので、httpd.conf に統一は次回に見送りで進めることにします。




■ /etc/apache/httpd.conf の編集

元の httpd.conf ファイルを残す

# cp /etc/apache/httpd.conf /etc/apache/httpd.conf.org


vi 等で httpd.conf の編集

# vi /etc/apache/httpd.conf

# ServerAdmin webmaster@myns
ServerAdmin root@test.com

DocumentRoot /var/www
ServerName www.test.com
AddHandler cgi-script .cgi .pl.........cgi と pl を有効に
UserDir index





■ /etc/apache/access.conf の編集

元の access.conf ファイルを残す

# cp /etc/apache/access.conf /etc/apache/access.conf.org



vi 等で httpd.conf の編集
ただし、今回はテストである為アクセス制限をする設定とする。

# vi /etc/apache/access.conf

<Directory /var/www

# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".

# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you (or at least, not yet).

Options Indexes FollowSymLinks

# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"

Options ExecCGI FollowSymLinks
# --------- テスト中の為アクセス制限 ---------------------------------
# AllowOverride None .....................アクセス制限無効
AllowOverride Limit AuthConfig ...........パスワードによる制限

# order allow,deny
# allow from all

order deny,allow
deny from all
allow from xx9.xx8.xx7.xx6 ............アクセス先の制限
allow from 192.168.1.12
# ----------- 制限設定ここまで ----------------------------------------

# Controls who can get stuff from this server.

</Directory>





■ パスワードファイルの作成

認証用にパスワードファイルを作成する必要があります。パスワードファイルの新規作成は以下のコマンドで行います。ファイル名は一般的には「.htpasswd」という名前にすることが多くなっています。-c はパスワードファイルを新規作成するための create オプションです。

/usr/bin/htpasswd -c ファイル名 ユーザ名

# /usr/bin/htpasswd -c /.htpasswd hanako
New password:AbCdEfG...................パスワードを入力
Re-type new password:AbCdEfG...........先程のパスワード入力
Adding password for user hanako


で /.htpasswd が出来た!


なお、ユーザの追加は次のコマンドで行います。

/usr/bin/htpasswd ファイル名 ユーザ名

$ sudo /usr/bin/htpasswd /.htpasswd papa


作成したファイルを見てみると、ユーザ名と暗号化されたパスワードが記載されているはずです。

$ more /.htpasswd
papa:*************
hanako:*************





■ アクセスコントロールファイルの作成

# vi /var/www/.htaccess

AuthType Basic
AuthName "Member Certification"
AuthUserFile /.htpasswd ..................パスワードファイルのパス
<Limit GET POST>
require valid-user
</Limit>




■ 設定ファイルのチェック

# /usr/sbin/apachectl configtest


これで、Syntax OK と表示されれば設定ファイルには誤りが無いことが分かります。
 



■ Apache の起動

# /usr/sbin/apachectl start


あなたの IP は、192.168.1.12 だとして
ブラウザーから http://www.test.com としてみて下さい。

どうですパスワードを求められましたか?