バーチャルホストでサブドメインを作成
サブドメインというのは「××.mydomain.com」の××に当たる部分だ。自宅サーバーでは「red.mydomain.com」「blue.mydomain.com」のように1つしかドメインがなくても、バーチャルホストによってサブドメインを自由に作成できる。また、複数のドメインを取得したときでもまったく同じ方法によって、一台のサーバーで同時に運営できる。実は多くのレンタルサーバーも一台のサーバーにたくさんのドメインを収容しているが、基本的なやりかたは同じである。
DDNSサービスの設定
DDNSサービスでホスト名の設定をアスタリスク(*)にしておこう。もし「www」と指定しているなら「www.mydomain.com」でしかアクセスできないが、アスタリスクに変更すればどんなサブドメインでも中継してくれる。
また、2つ目以降の新しいドメインを取得したときは、そのドメインについて新たにDDNSサービスに登録しておく。

バーチャルホストの基本設定
バーチャルホストを設定するには「/etc/httpd/conf/httpd.conf」を編集する。httpd.confの1040行目あたりに次のような記述がある。その下にバーチャルホストの情報を追加していく。ここでは「www.mydomain.com」で運用していたサーバーに、「red.mydomain.com」というサブドメインを追加すると仮定する。
# # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # #<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> #<VirtualHost _default_:*> #</VirtualHost> ここから下を追加していく <VirtualHost *> ServerName www.mydomain.com 元からのドメイン名 DocumentRoot /home/httpd/html 元からのデータのディレクトリ </VirtualHost> <VirtualHost *> ServerName red.mydomain.com 追加するサブドメイン DocumentRoot /home/red/public_html そのデータのディレクトリ </VirtualHost>
追加するサブドメインのデータの置き場所はどこでもかまわないが、red.mydomain.comでは「red」というユーザーのホームページを使うことにした。通常は「http://www.mydomain.com/~×××/」というURLになるが、サブドメインを使うと「×××.mydomain.com」という形でアクセスできるようになる。長さが短くなり、アクセスもしやすくなりそうだ。
また、ここではサブドメインの作り方を紹介したが、新たに取得した別のドメインも同じ要領で指定できる。
上の設定は最低限の記述であり、このほかにさまざまな設定を行える。だが、最初からいろいろ設定すると、うまく動かないときに原因を突き止めるのが難しくなるので、簡単なところから始めよう。
なお、ファイルを保存したらhttpdを再起動するのを忘れないように(/etc/rc.d/init.d/httpd
restart)。
ドメイン別のログファイルを作成する
バーチャルホストではそれぞれ別のログファイルにアクセスの記録をとることができる。指定をしないとすべて同じ「access_log」に記録されるため、どのドメインにアクセスがあったのか判断するのが難しい。ログファイルを分離すればログの解析もやりやすくなるはずだ。
ログファイルの設定は<Virtual Host *>と</VirtualHost>の間に以下のように記述する。
<VirtualHost *>
ServerName www.mydomain.com
DocumentRoot /home/httpd/html
CustomLog logs/main_access_log 標準のアクセスログ
ErrorLog logs/main_error_log 標準のエラーログ
</VirtualHost>
<VirtualHost *>
ServerName red.mydomain.com
DocumentRoot /home/red/public_html
CustomLog logs/red_access_log 追加ドメインのアクセスログ
ErrorLog logs/red_error_log 追加ドメインのエラーログ
</VirtualHost>
ログの取り方はこのページで紹介したのと同じように変更できる。画像へのアクセスやローカルからのアクセスを記録しなかったり、簡単な形式でのログをとったりといったカスタマイズである。CustomLogの行に次のように太字の部分を追加するといい。
CustomLog logs/red_access_log common env=!nolog
アクセスできるか確認する
こちらのページでやったのと同様に、LANの中からは自分のドメイン名でアクセスしてもページは開かない。サブドメインや2つ目のドメインが使えるかどうかは外から確認する必要がある。「Anonymizer」などを使って確認しよう。
LANの内側からアクセスできるように設定したいなら、hostsファイルを編集する。WindowsXP/2000の場合、スタートメニューの「ファイル名を指定して実行」から「notepad %SystemRoot%\system32\drivers\etc\hosts」と入力。Windows98/Meでは「notepad %SystemRoot%hosts」と入力する。ノートパッドでhostsファイルが開くのでいちばん下に次のように記述を追加しよう。
192.168.0.200 www.mydomain.com
192.168.0.200 red.mydomain.com
ドメイン名を指定したときはまずhostsファイルの記述を読みに行き、そこに該当するものがなければDNSサーバーに問い合わせる。このようにhostsファイルに追加しておくとサブドメインや新しいドメインがプライベートIPアドレスに変換されるので問題なくアクセスができる。DNSサーバーに問い合わせを出すとグローバルIPアドレスが通知されるのでLANの中からはアクセスできない。