YAMANEKO's Laboratory - UNIXサーバー構築 - バーチャルドメインの技
バーチャルドメインを極める!!

一台のサーバーに、複数のドメインを割り当てて共用する、というのがバーチャルドメイン(あるいはバーチャルホスト)です。

初期のシステムだと、たとえば、123.comとabc.comが一つのサーバーにあったとすると・・webmaster@123.comを先に登録してしまうと、webmaster@abc.comは作れませんでした。所詮は一台のサーバー、ですから。

それを解決するために、実際のUNIXシステムに登録するユーザ名は、user0001みたいな内部的な名前にしておき、外側からは「webmaster@abc.com」のように、ユーザー名@ドメイン名の形のユーザー名でアクセスできるようにするというのが、バーチャルユーザーです。

ただ残念なことに、このシステムはあまり普及していなくて、ほとんどの場合対応しているのはメール配信だけです。そこで、ソースに少々修正を加えて、いろいろなアプリでsendmailみたいにバーチャルユーザーをを設定できるようにしてみました。

このページは、自分でソースのパッチあてやメイクができる人を対象にしています。お願いですので、メイクの仕方とかインストールの仕方を質問しないでください。。
また、なんら動作を保証するものではありませんので、ご自身のリスクで試してください。

qpopperでバーチャルドメイン

popのアカウントとしてドメイン名付きのバーチャルユーザ名を使えるようにします。

>>

 

qpopper4.0.4用パッチ【qpopper4.0.4-vuser.patch】

>>

 

qpopper4.0.5用パッチ【qpopper4.0.5-vuser.patch】

まずは、本家サイトからソースをダウンロードして解凍して、

patch < 【対応するパッチファイル】

でパッチ完了。あとは普通にメークします。

起動時オプション -V か、設定ファイルオプション virtual-user で、バーチャルユーザー名と実ユーザー名の対応ファイルを指定。sendmailのmakemapする前の/etc/mail/virtusertable があれば、そのまま使えます。

起動時オプションの例: popper -V /etc/mail/virtusertable

/etc/mail/virtusertableの例
webmaster@123.com       user0001
webmaster@abc.com       user0002

バーチャルユーザー名、実ユーザー名の順にタブかスペースで区切って記述します。 バーチャルユーザー名は最大200文字です。

ProFTPDでバーチャルドメイン

FTPのアカウントとしてドメイン名付きのバーチャルユーザ名を使えるようにします。

>>

 

proftpd-1.2.4用パッチ【proftpd-1.2.4-vuser.patch】

>>

 

proftpd-1.2.6用パッチ【proftpd-1.2.6-vuser.patch】

>>

 

proftpd-1.2.9用パッチ【proftpd-1.2.9-vuser.patch】

まずは、本家サイトからソースをダウンロードして解凍して、

patch < 【対応するパッチファイル】

でパッチ完了。あとは普通にメークします。
ProFTPD本来のIPベースバーチャルドメイン機能と違って、IPアドレスは一つだけで十分です。/etc/mail/virtusertableに、バーチャルユーザー名と実ユーザー名の対応を記述してください。sendmailのvirtusertableがあればそのまま使えます。

/etc/mail/virtusertableの例
webmaster@123.com       user0001
webmaster@abc.com       user0002

バーチャルユーザー名、実ユーザー名の順にタブかスペースで区切って記述します。バーチャルユーザー名は最大200文字です。

Apacheでバーチャルドメイン

Apacheでバーチャルドメイン、なんて当たり前ですが、さらにバーチャルユーザーの機能を使えるようにして、

http://www.abc.com/~hoge
http://www.123.com/~hoge

このようなドメインが違う同じユーザー名が同一サーバー上に同居できるようにします。

>>

 

Apache1.3.27用パッチ【httpd-1.3.27-vuser.patch】

>>

 

Apache2.0.43用パッチ【httpd-2.0.43-vuser.patch】

まずは、本家サイトからソースをダウンロードして解凍して、

patch < 【対応するパッチファイル】

でパッチ完了。あとは普通にメークします。
このパッチはmod_userdirを改造し、バーチャルユーザーと実ユーザーの対応表を利用して、一致するバーチャルユーザー名が見つかれば実ユーザー名で置き換える動作をします。(実ユーザー名でもアクセスできます)
バーチャルユーザー名と実ユーザー名の対応ファイルをVUserTableディレクティブで指定してください。sendmailのvirtusertableがあればそのまま使えます。

ディレクティブ VUserTable
Syntax
VUserTable ファイル名
Context server config, virtual host
バーチャルユーザー名と実ユーザー名の対応ファイルを指定します。
VUserTable設定ファイルの例
webmaster@123.com       user0001
webmaster@abc.com       user0002

バーチャルユーザー名、実ユーザー名の順にタブかスペースで区切って記述します。バーチャルユーザー名は最大200文字です。