Apache2 バーチャルホスト バーチャルドメイン設定
バーチャルホスト、バーチャルドメインの設定です。Apacheは複数のホスト、ドメインでの運用が可能です。負荷も1日に数千、数万アクセスとかあるなら話は別ですが個人で公開しているのであれば1つのサービス(デーモン)でも運用することは問題ないレベルかと思われます。このバーチャルホストの機能を使えばわざわざサイトごとにサーバーを立てる必要はなくなりますし、せっかくの自宅サーバーですので複数サイトを作るのもいいのかなぁ?と思います。
ApcheのバーチャルホストにはIPベースとNameベースと2種類ありますが、自宅サーバなので現実的にはIPアドレスを1つしか貰っていない方のほうが圧倒的に多いと思いますのでNameベースのバーチャルホストを設定したいと思います。(ここではサブドメインを使ってます)
まず222行目付近に「UseCanonicalName」があるかと思います。
デフォルトはoffになっています。バーチャルホストを使用する場合onにします。

949行目付近
#NameVirtualHost *:80
こんな状態になっているかと思います。
この「#」を外します。
*(アスタリスク)部分にサーバのIPアドレスとポート番号を記述します。
「192.168.1.2:80」であれば「NameVirtualHost 192.168.1.2:80」とします。
更に957行目付近から始まる
#<VirtualHost *:80>
# 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
<Directory "D:/www2">
Options FollowSymLinks ExecCGI
AllowOverride all
Order allow,deny
Allow from all
</Directory>
#</VirtualHost>
この部分の「#」を全て外します。赤い文字の部分を自分の環境に合わせ書き換え、追記します。

設定例として...
<VirtualHost 192.168.1.2:80>
ServerAdmin www1@yunayuna.net
DocumentRoot "D:/www1"
ServerName www1.yunayuna.net
ErrorLog "C:/apache/Apache Group/Apache2/logs/www1error.log"
CustomLog "C:/apache/Apache Group/Apache2/logs/www1access.log"
<Directory "D:/www1">
Options FollowSymLinks ExecCGI
AllowOverride non
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
こんな感じになったかと思います。ちなみにバーチャルホストの設定が有効な場合はいままで行ってきたドキュメントルート等の設定より優先されます。メインのサイトと同じ設定をここに記述して再度詳細設定をします。順番は最初に記述した1番上の設定が最優先されます。
(サブドメインが無くて"http://ドメイン"でアクセスがあった場合など)
続いて、もう1つのサイトを追記します。
<VirtualHost 192.168.1.2:80>
ServerAdmin www2@yunayuna.net
DocumentRoot "D:/www2"
ServerName www2.yunayuna.net
ErrorLog "C:/apache/Apache Group/Apache2/logs/www2error.log"
CustomLog "C:/apache/Apache Group/Apache2/logs/www2access.log"
<Directory "D:/www2">
Options FollowSymLinks ExecCGI
AllowOverride non
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
これでひとまず2つのサイトが出来上がったわけです。
このルールに従っていけば3つ、4つとサイトを増やせます。
ディレクトリの設定関連
バーチャルホストとは直接関係ないですがオプション等ちょっとおまけOptions[ディレクトリに対して使用可能な機能を設定する]
| All | MultiView以外の全て使用可能 |
| ExecCGI | CGIプログラムの実行 |
| Includes | SSIを許可 |
| IncludesNOEXEC | SSIを許可。#exec, #includeは使用不可 |
| MultiViews | 言語に応じて返送するコンテンツを切替える |
| Indexes | ファイルが存在しない場合にファイルリスト一覧を出力 |
| FollowSymLinks | シンボリックリンクのリンク先へのアクセスを許可 |
| SymlinksIfOwnerMatch | シンボリックリンクとリンク先ファイルの所有者が同じ場合だけリンク先へのアクセスを許可 |
AllowOverride[ .htaccess で許可されるディレクティブの種類]
| All | 全てオーバライド可能 |
| None | 全て禁止 |
| AuthConfig | ユーザ認証に関するディレクティブを許可 |
| FileInfo | ドキュメントタイプのディレクティブを許可 |
| Indexes | ディレクトリインデックス用ディレクティブを許可 |
| Limit | ホストアクセス制御関係のディレクティブを許可 |
Order[デフォルトのアクセス可能な状態と、Allow と Deny が評価される順番を制御する]
| Deny,Allow | Deny ディレクティブが Allow ディレクティブの前に評価されます。 アクセスはデフォルトで許可される。 |
| Allow,Deny | Allow ディレクティブが Deny ディレクティブの前に評価されます。 アクセスはデフォルトで拒否される |
| Mutual-failure | Allow のリストに現れて、 Deny のリストに現れないホストのみがアクセス可ですが、 Order Allow,Deny と同等の為通常は使用しない |