WWWサーバ

インストール

packagesを使用する場合。

/stand/sysinstallよりパッケージをインストールします。
「configure」→「packages」→「www」→「apache-1.3.6」を選択すると自動的にインストールされます。

portsを使用する場合。

apache_1.3.6.tar.gzを/usr/ports/distfileにダウンロードし、make installします。

# cd /usr/ports/www/apache13
# make install

設定ファイル

設定ファイルのディレクトリ
  ディレクトリ
ルート /usr/local/
コンフィグレーション /usr/local/etc/apache/
CGI /usr/local/www/cgi-bin/
ホームページのソース /usr/local/www/data/
ログファイル /var/log/
アイコンファイル /usr/local/www/icons/

コンフィグレーションファイルの変更

httpd.confの設定内容の変更

ServerAdminにサーバ管理者のメールアドレスを設定する。
ServerNameにホスト名を設定する。

基本的には、以上の2カ所を修正すればよいのですが、必要に応じて以下の設定を行います。

☆CGIを使用する場合。

#<Directory />修正要
#    Options ExecCGI
#    AllowOverride FileInfo AuthConfig Limit
#</Directory>

ユーザホームページディレクトリのアクセス設定

ユーザディレクトリ「public_html」のアクセス設定をするために、以下のコメントをすべてとります。オプションはそのままでも使用できますが、必要に応じて変更します。

#<Directory /*/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>

起動

通常は、rc.dに起動スクリプトを置く。

エラーがあると起動されない。こんなときはエラーログを見よう。例えば、指定したディレクトリが存在しない時など、起動コマンドを入力しても起動されない。エラーログを見ると、ディレクトリが存在しない旨のメッセージが出ている。

バーチャルサーバ

今回はName-basedバーチャルサーバを構築します。Ip-basedバーチャルサーバはIPアドレスに余裕がある時には有意義ですが、そうでない場合は、Name-basedバーチャルサーバの方が便利です。設定は大変簡単です。http.confの最後の方に<virtual host>っていうのがありますので、その中に書き込むとできますが、DNSの設定が必要です。

NameVirtualHostにバーチャルサーバのIPアドレスを設定する。

NameVirtualHost 123.456.789.012

このアドレスは、WWWサーバのアドレスです。Name-basedですので、IPアドレスは、設定するマシンに割り当ててあるアドレスのみでよいです。

バーチャルホストの設定をする。

メインとなるWWWサーバも記入する必要があります。また、ログファイル等を置くディレクトリは勝手には作ってくれませんので、あらかじめ作成して置く必要があります。

<VirtualHost ip.address.of.host.some_domain.com>
    ServerAdmin webmaster@host.some_domain.com
    DocumentRoot /www/docs/host.some_domain.com
    ServerName host.some_domain.com
    ErrorLog logs/host.some_domain.com-error_log
    CustomLog logs/host.some_domain.com-access_log common
</VirtualHost>

設定例

ドメイン名を取得した場合の設定例を下記に記載します。
ドメイン名 hogehoge.or.jp
管理者 hogechan

通常バーチャルホストを作成する場合、ドキュメントを置く領域は、どこにでも設定できますが、例えば、www.hogehoge.or.jpのドキュメント領域を/usr/local/www/hogeに設定した場合、このディレクトリに対してアクセスするのは、単なるuserでは、不都合が生じることがあります。かといって、このhogechanさんにwheel権限を与えるとシステムの重要な部分を変更されてしまうかもしれません。今回の場合hogechanさんには、通常のuser権限を設定し自由にシステムの設定を更新できないようにしてあります。また、普通のプロバイダでは、メンバーにホームページ領域を設定しているところがありますが、たいていの場合/home/hogechanがユーザの領域で、ホームページを作る領域は/home/hogehoge/public_htmlとする場合がほとんどです。今回のユーザ領域の設定は同様の設定を行います。つまり、この領域にはhogechanさんがファイルの転送等を自由にできるように設定します。下記の設定例ではバーチャルホストのドキュメントを置く領域を/home/hogehoge/public_htmlとする事によってhogechanさんには、wheel権限を与えず、かつ、自由にファイル等の転送ができるようにします。

<VirtualHost www.hogehoge.or.jp>
ServerAdmin hogechan@marino.ne.jp
DocumentRoot /home/hogechan/public_html
ServerName www.hogehoge.or.jp
ErrorLog /home/hogechan/logs/error.log
CustomLog /home/hogechan/logs/access.log common
ScriptAlias /cgi-bin/ "/home/hogechan/public_html/cgi-bin/" </VirtualHost>

ScriptAliasは、CGIを使用しないのであれば必要ありません。この行がなければ、cgiプログラムのあるところをメインサーバの設定をみて、/usr/local/www/cgi-binと解釈してしまいます。ところが、hogechanさんにはこのディレクトリへのアクセス権がありません。これは、/cgi-bin/が指定された時に、hogechanのディレクトリの/cgi-bin/をみるように設定を変更するものです。

アクセスカウンタの設定

wwwcountを設定する。

インストール

wwwcount2.5をhttp://www.fccc.edu/users/muquit/Count.htmlからダウンロードしてきます。

/usr/local/srcのディレクトリを作りダウンロードしてきたファイルをこのディレクトリにコピーし解凍します。
# zcat wwwcount2.5.tar.gz | tar xvf -

解凍してできたディレクトリに移動してconfigureスクリプトを実行します。

# cd wwwcount2.5
# ./configure --prefix=/usr/local/etc/wwwcount2.5

コンパイルします。

# make all

ここで、Config.tmplをapacheをインストールした環境に合わせて変更します。具体的には、CGIBIN_DIRにcgi-binが存在するディレクトリの指定を以下のように変更するだけです。この行以外は変更してはいけません。

CGIBIN_DIR="/usr/local/etc/httpd/cgi-bin"を
CGIBIN_DIR="/usr/local/etc/www/cgi-bin"に変更します。

次は、いよいよインストールです。このとき、いろいろと聞かれます。よくわかりませんが、次のように指定するとうまくインストールできます。

# make install
Continue[y|n]? y
Do you know the user and group id of httpd' child process [y|n]:? y Enter user id of httpd's child process [no default]:? nobody
Enter group id of httpd's child process [no default]:? nogroup

これでインストールは完了です。

configファイルの設定

/usr/local/etc/Counter/conf/count.cfgの最後に[authorized]の項目にWWWサーバーのホストネイムを記述します。サンプルが数行埋め込まれていますので、これを参考に記述しますが、サンプルは、すべてコメントアウトします。

カウントデータファイルの設定

# /usr/local/etc/Counter/data
# echo 1 > xxxx.dat
# chown nobody xxxx.dat
# chmod 664 xxxx.dat
<img src="/cgi-bin/Count.cgi?df=xxxx.dat&dd=A&image=yeehaw.gif&ft=0&offset=5&align=topcenter">

パスワード認証

一般ビジターなどのアクセスができない管理者専用や特定のメンバー専用のページを作るには、パスワード認証が必要になります。そんなページを作ってみましょう。

その他設定事項

アクセスログにドメイン名を出力する方法

httpd.confファイルのHostnameLookupsの項目を“on”にする