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 としてみて下さい。
どうですパスワードを求められましたか?