まずServerにDocumentRootとなるディレクトリーを作ります。私の場合は
rootにwwwを作成、その中にwww.***.com、admin.***.com、i.***.comのディレクトリーを作成しそれぞれにhtdocsディレクトリーを作成しました。このhtdocsの中にhtmlファイルやcgi-binのディレクトリーを置きます。
すなわちDocumentRootはwww.***.comの場合 /www/www.***.com/htdocs となります。
lsコマンドで中を確認していきますと下記のようになります。
[root@dns3 /www]# ls
admin.***.com/ i.***.com/ www.***.com/
[root@dns3 www.***.com]# ls
htdocs/
Apacheの設定
httpd.confの中を見ていきますと
# Use name-based virtual hosting.
と書かれた行がありますのでそこから下に下記のように設定しました。
htdocsのディレクトリーではSSIがCGI-BINのディレクトリーではSSIとCGIが動くようになっています。
#NameVirtualHost *
NameVirtualHost 192.168.0.4
<VirtualHost 192.168.0.4>
ServerAdmin webmaster@***.com
DocumentRoot /www/www.***.com/htdocs
ServerName www.***.com
ErrorLog logs/www.***.com-error_log
CustomLog logs/www.***.com-access_log combined
Alias /cgi-bin/ "/www/www.***.com/htdocs/cgi-bin/"
<Directory "/www/www.***.com/htdocs">
Options +Includes
AllowOverride AuthConfig
</Directory>
<Directory "/www/www.***.com/htdocs/cgi-bin">
AllowOverride None
Options +ExecCGI +Includes
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost 192.168.0.4>
ServerAdmin webmaster@***.com
DocumentRoot /www/admin.***.com/htdocs
ServerName admin.***.com
ErrorLog logs/admin.***.com-error_log
CustomLog logs/admin.***.com-access_log combined
Alias /cgi-bin/ "/www/admin.***.com/htdocs/cgi-bin/"
<Directory "/www/admin.***.com/htdocs/cgi-bin">
AllowOverride None
Options +ExecCGI +Includes
Order allow,deny
Allow from all
</Directory>
<Directory "/www/admin.***.com/htdocs">
Options +Includes
AllowOverride AuthConfig
</Directory>
</VirtualHost>
これを書き加えapacheを再起動すればOKです。もちろんBIND(named)のゾーンデータベース(私の場合は/var/named/***.com)にCNAMEを追加してnamedを再起動してください。
www IN CNAME dns3.***.com.
ftp IN CNAME dns3.***.com.
mail IN CNAME dns3.***.com.
admin IN CNAME dns3.***.com.
i IN CNAME dns3.***.com.