HAYAGUI

apache-1.3.20でVirtualHost

はじめに

このサイトは、netgroove.ne.jpさんに hayagui.com をホスティングしてもらっていますが、この仕組みを apache でやってみます。

環境

apache は、FreeBSD4.4のCDから /stand/sysinstall でインストール。

OS FreeBSD 4.4
apache のバージョン 1.3.20
WWWサーバ名 chaco.hayagui.com
VirtualHostするURL kenz.hayagui.com

とりあえずapacheのインストールと設定

apacheをインストールすると、/usr/local/etc/apache の下に5 つのファイルと *.default ファイルが作成されます。

  • access.conf
  • magic
  • srm.conf
  • httpd.conf
  • mime.types

で、変更するファイルは httpd.conf です。 このファイルを vi などで開いて変更してください。 このサーバ名は、chaco.hayagui.com なので、以下のように変更します。

#ServerAdmin you@your.address
ServerAdmin root@chaco.hayagui.com
と、
#ServerName new.host.name
ServerName chaco.hayagui.com
これらを変更します。 あと、以下の2つの行を確認した後保存してください。
DocumentRoot "/usr/local/www/data"

<IfModule mod_userdir.c>
  UserDir public_html
</IfModule>
前者は、ユーザに属さないhtmlを格納するディレクトリのルートです。 後者は、個人ユーザのhtmlディレクトリです。その後に、
chaco# /usr/local/sbin/httpd
と入力して httpd を起動してください。(これをしなくて、FreeBSDをrebootしてもいいです。)

ネットワークの設定が済んでいるWindowsマシン(jhon)から、ここをアクセスしてみます。 ブラウザを起動して、http://chaco.hayagui.com/ に設定すると、次のように表示されると思います。

あれ、前とデザイン変わったな..

kenzというユーザのディレクトリ(/usr/home/kenz/public_html/)に cd して index.html というファイルを作成します。 ファイルの中身は、以下のような感じ。

<html>
<head>
 <title>hogehoge</title>
</head>
<body bgcolor=#ffffff>
<h1>hogehoge</h1>
test
</body>
</html>
http://chaco.hayagui.com/~kenz/ を開くと、以下のように表示されます。

本題のVirtualHost

VirtualHostとは、ひとつのWebサーバで複数のドメインに対応する機能です。 この機能を実現するには、ひとつのWebサーバに複数のIPアドレスを割り当てる方法と、 ひとつのWebサーバに複数のホスト名を割り当てる方法があります。

今回は、後者の方法でVirtualHostを実現します。

http://chaco.hayagui.com/~kenz/ を http://kenz.hayagui.com というバーチャルホストにします。

DNSの設定を変更

kenz.hayagui.com という URL にしますので、このホスト名で名前解決する必要があります。 /etc/namedb/hayagui.zone を開いて、以下の行を追加します。
kenz   IN     CNAME     chaco
これの意味は、chaco という名前のホストに kenz という別名を割り当てています。 chaco.hayagui.com と kenz.hayagui.com は同じIPアドレスになります。 hayagui.zone の Sirial を更新して再起動します。nslookup して確認するとこんな感じ。
chaco# nslookup
Default Server:  chaco.hayagui.com
Address:  192.168.0.5

> chaco
Server:  chaco.hayagui.com
Address:  192.168.0.5

Name:    chaco.hayagui.com
Address:  192.168.0.5

> kenz
Server:  chaco.hayagui.com
Address:  192.168.0.5

Name:    chaco.hayagui.com
Address:  192.168.0.5
Aliases:  kenz.hayagui.com

同じIPアドレスになっていますね。

apacheの設定を変更

さて、/usr/local/etc/apache に cd して、httpd.conf を開いてください。 ファイルの最後の方にある以下の項目を変更します。
# Use name-based virtual hosting.
#
#NameVirtualHost *
NameVirtualHost 192.168.0.5 
これは、バーチャルホストするサーバのIPアドレスを設定します。
#
# VirtualHost example:
#<VirtualHost *>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
<VirtualHost 192.168.0.5>
    ServerAdmin root@chaco.hayagui.com
    DocumentRoot /usr/local/www/data
    ServerName  chaco.hayagui.com
    ErrorLog    /var/log/chaco.hayagui.com-error_log
    CustomLog   /var/log/chaco.hayagui.com-access_log common
</VirtualHost>

<VirtualHost 192.168.0.5>
    ServerAdmin kenz@chaco.hayagui.com
    DocumentRoot /usr/home/kenz/public_html
    ServerName  kenz.hayagui.com
    ErrorLog    /var/log/kenz.hayagui.com-error_log
    CustomLog   /var/log/kenz.hayagui.com-access_log common
</VirtualHost>
各々以下のような意味を持ちます。

ServerAdmin
サーバ管理者のメールアドレス
DocumentRoot
htmlを保存するルートディレクトリ
ServerName
サーバ名。VirtualHostするURLとなります。
ErrorLog
エラーを格納するディレクトリ。
CustomLog
エラーを格納するディレクトリ。

で、httpd を起動させると、以下のようなページを見ることができます。

先ほど http://chaco.hayagui.com/~kenz/ で表示してた内容と同じですね。
VirtualHost成功成功。


戻る



(C)1999 - 2002 Kenji Ito All rights reserved.