■バーチャルドメイン■未完成
目論見【2003.04.14】

現在,メインのURLとして,kubo-office.comが存在している.
これはすでに浸透しきったURLなので,いまさらURLが変わりましたなどと言うと,お叱りを受けるるに決まっています.
しかし,現在の自宅サーバのURLであるgohirapa.zive.netでは,私以外のユーザーが居るため,これもいまさらなくしてしまうわけにはいかない.

そこで,1つのサーバでバーチャルドメインを使って,どちらでもアクセスできるように2つのサーバを作ってしまいます.
■IPベースなバーチャルホストと名前ベースなバーチャルホスト
今回の目的ではバーチャルホストは「名前ベース」となります.
名前ベースというのは,DNSに複数のURLを同一のIPアドレスに設定すると言うことになります.したがって,ハードウェア的には一切追加する機器は必要ありません.
必要なのは,ダイナミックDNSサービスの設定変更と,サーバ上にgohirapa.zive.netとkubo-office.com用に2つのユーザーエリアを作ること,Apacheでのバーチャルホストの明示です.
■バーチャルホストのしくみ
私なりに理解しているバーチャルホストの仕組みを整理します.
AレコードとCNAME
まず,ダイナミックDNSサービスを利用する場合,AレコードでURLとIPアドレスを対応付けします.このAレコードはURL1つに対してIPアドレスは1つでないといけません.IPベースのバーチャルホストでは,Aレコードを複数登録可能(なんだと思う)ですが,今回の名前ベースのバーチャルホストでは,URLが2つというだけで,実際のIPアドレスは1つです.したがって,Aレコードで1つのURLを対応させ,もうひとつのURLは別の対応を指定してやる必要があります.その場合に使うのがCNAMEレコードです.この定義で,1つのIPアドレスに複数のURLが対応付けできます.

ということで,gohirapa.zive.netをAレコードで定義し,kubo-office.comをCNAMEレコードで定義します.

ということは,今使っているZiveはフルドメインをサポートしないので,ダイナミックDNSサービスを2箇所登録することになる.
その時,Aレコードを登録せずに,CNAMEレコードのみを登録できるかどうかが問題となる.
Apacheの設定
Apacheのhttpd.confの最後にバーチャルホストの設定があります.
名前ベースのバーチャルホストの場合,ここを書き加えることで,設定完了です.
簡単に言ってしまっていますが,現在いまいち設定が不明です.
しばらく勉強いたします.
【2003.04.18】

ダイナミックDNSサービスで2つのURLを登録できれば,あとはApacheの設定だけで済むらしいことが判明した.
設定は,グローバルIPを持った自宅サーバにアクセスがあった時に,サーバ名毎にDocumentRootを指定してあればそれだけでもOKらしい.
要するに,httpd.confの最初でServerNameとかServerRootなどを書いているが,そこをコメントアウトして,バーチャルホスト毎に書き加えるということらしい.
CGIもURL毎に使えるようにしたいのでScriptAliasもここに書き加える.
当然,エラーログとアクセスログもURL毎に別の場所に保存してやるように書き加えないといけない.

どうやらこれは,実際にやってみないとよく解らないというのが結論.
不安たっぷりだがやるしかないみたい.
■httpd.confの書き換え以下未完成です.メモだけ貼り付けておきます.

さて,それではhttpd.confの書き換え個所を実際に見てみる.
----------memo1----------
・Apacheでの設定方法
 httpd.confでVirtualHostを定義します。VirtualHostの設定方法の詳細は、どこかのサイトか書籍などを参考にしてください。で、VirtualHostの一つとして以下のような設定をします。


<VirtualHost xxx.xxx.xxx.xxx>
ServerName xxx.xxx.xxx.xxx
DocumentRoot /home/user/hoge
<Directory /home/user/hoge>
Order deny,allow
deny from all
</Directory>
</VirtualHost>


 xxx.xxx.xxx.xxxはサーバのIPアドレスです。
 DocumentRootは適当に何も無いところを定義して置いてください。
 DocumentRootのディレクトリのアクセス権の設定で「Order deny,allow」と「deny from all」とすることによりIPアドレスによるアクセスを拒否できます。