バーチャルホストの設定

 Apacheのバーチャルホストの設定については、最初の「設定概要」のページでも軽く触れていますが、ここではサブドメイン独自ドメインの設定について、詳しくご説明したいと思います。

サブドメインの設定

 サブドメインの設定については、「設定概要」のページに以下の内容の部分があったと思います。尚、この設定は最も簡単なName Basedによるものです。

### Section 3: Virtual Hosts
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at <URL:http://www.apache.org/docs/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
#NameVirtualHost *

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<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>

 サブドメインの場合は、独自ドメインに比べて設定は非常に簡単です。ここで、該当部分だけを抜き出しますと以下のようになります。ここで注意すべき事は、まず最初にメインのドメインに関する設定をして、その後にサブドメインに関する設定を行うと言う点です。バーチャル・ホストの設定を行う場合、httpd.confの最初の方で設定されたデフォルトのDocumentRoot設定は無視されるようです。つまり、http://www.domain.ne.jp/でアクセスした場合、httpd.confのデフォルトでの設定(DocumentRoot "/home/httpd/html")は無視される訳です。

<VirtualHost ***.***.***.***> ←***部分にはIPアドレスが入る
ServerAdmin webmaster@domain.ne.jp
DocumentRoot /home/domain/public_html ←最初にメインのdomainに関する記述をする!
ServerName www.domain.ne.jp
ErrorLog logs/www.domain.ne.jp-error_log
CustomLog logs/www.domain.ne.jp-access_log common
</VirtualHost>

<VirtualHost ***.***.***.***> ←***部分にはIPアドレスが入る
ServerAdmin webmaster@domain.ne.jp
DocumentRoot /home/sub/public_html
ServerName sub.domain.ne.jp
ErrorLog logs/sub.domain.ne.jp-error_log
CustomLog logs/sub.domain.ne.jp-access_log common
</VirtualHost>

 もし、当サーバーでサブドメインを設定したいなら、サブドメイン用のユーザーアカウントを***としてユーザー登録します。そして通常の場合と同じように、その中にpublic_htmlフォルダを作り、ホームページ用ファイルをその中に置けば、次のURL、http://***.komonet.ne.jp/でホームページを公開出来るようになります。後は下のようにServerNameをDNSにCNAMEで登録してやるだけです。

***.komonet.ne.jp. IN CNAME ###.komonet.ne.jp. ←###はネームサーバー名

 サブドメインは理論上いくらでも登録出来ますが、余り多く登録するとサーバー自体のパフォーマンスが低下するのでご注意下さい。

独自ドメインの設定

 独自ドメインを設定する場合は、サブドメインの時のようにそう簡単には行きません。まずApacheのバーチャルホスト機能について説明しますと、Apacheは一つのサーバーの中にいくつもの独自ドメインを登録する事が出来ます。一般のレンタルサーバーサービス会社などが独自ドメインの登録を受け付けているのは、ほとんどがこのバーチャルホスト機能によるものです。

 ただこの場合重要なのは、Apacheの設定よりもBIND(ネームサーバー)の設定の方です。まずドメインを予め公式データベース(JPNIC等)に登録する必要がありますが、その時にネームサーバー名を同時登録しようとしているサーバーのネームサーバー名にしなくてはいけないと言う事です。(登録しようとしているドメイン名とネームサーバーに使われているドメイン名とが異なります。)又、ご自分のBINDにzoneファイルを、そしてそのzoneファイルを参照する設定を以下のようにnamed.confに追加してやらねばなりません。

zone "***.ne.jp" {
 type master;
 file "***.ne.jp";
 allow-update { none;};
};