apache_NameVirtualHostの設定

NameVirtualHostの設定
(同一ハード且つ同一IPで、サイト名を分離する場合)
★DNSサーバでの作業
●外向け正引きゾーンファイルの編集

# vi /var/named/chroot/var/named/hoge.com.db.wan
下記のCNAMEレコードを追加
XXX IN CNAME hostA.hoge.com.
YYY IN CNAME hostA.hoge.com.
ZZZ IN CNAME hostA.hoge.com.
※XXX,YYY,ZZZはWebサーバの別名。実際は英小文字で!

●ゾーンファイルの文法チェック

# cd /var/named/chroot/var/named
# named-checkzone hoge.com. ./hoge.com.db.wan

●BINDの再起動

# /etc/rc.d/init.d/named restart

●下記のdigコマンドツールでAレコードの正引きを確認

http://o2soft.jp/tool/dig/

★Webサーバでの作業
詳細は下記URLをを参照の事。
 http://httpd.apache.org/docs/2.0/ja/vhosts/name-based.html
 http://nox-insomniae.ddo.jp/insomnia/2005/12/apache2-virtualhost.html
 http://blog.tauchi.net/2007/07/namevirtualhost.html
●基本的には「GlobalなDocumentRoot,ServerName,Directoryディレクティブ」は無効になり、
VirtualHostディレクティブに記載する。
メインホストはVirtualHostディレクティブの一番最初に記載すれば、デフォルトホストとなる。

# vim /etc/httpd/conf/httpd.conf
 ##DocumentRoot "/var/www/html"

 NameVirtualHost *:80
 <VirtualHost *:80>
   ServerAdmin 管理者メアド
   DocumentRoot /var/www/html/main
   ServerName www.hoge.com
   ServerAlias hoge.com
   ErrorLog /var/www/html/main/apache-log/error_log
   <Directory />
     Options FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
   </Directory>
   <Directory "/var/www/html/main">
     Options FollowSymLinks SymLinksifOwnerMatch
     AllowOverride All
     Order allow,deny
     Allow from all
   </Directory>
 </VirtualHost>

 <VirtualHost *:80>
   ServerAdmin 管理者メアド
   DocumentRoot /var/www/html/zzz
   ServerName XXX.hoge.com
   ErrorLog /var/www/html/zzz/apache-log/error_log
   <Directory />
     Options FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
   </Directory>
   <Directory "/var/www/html/zzz">
     Options Includes ExecCGI FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
  </Directory>
 </VirtualHost>

 <VirtualHost *:80>
   ServerAdmin 管理者メアド
   DocumentRoot /var/www/html/yyy/
   ServerName YYY.hoge.com
   ErrorLog /var/www/html/yyy/apache-log/error_log
   <Directory />
     Options FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
   </Directory>
   <Directory "/var/www/html/yyy">
     Options FollowSymLinks SymLinksifOwnerMatch
     AllowOverride All
     Order allow,deny
     Allow from all
   </Directory>
 </VirtualHost>

 <VirtualHost *:80>
   ServerAdmin 管理者メアド
   DocumentRoot /var/www/html/zzz
   ServerName ZZZ.hoge.com
   ErrorLog /var/www/html/zzz/apache-log/error_log
   <Directory />
     Options FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
   </Directory>
   <Directory "/var/www/html/zzz">
     Options Includes ExecCGI FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
   </Directory>
 </VirtualHost>

●文法チェック

# apachectl -t

●apache再起動

# apachectl restart

●URLアクセス確認

 http://www.hoge.com
http://XXX.hoge.com
http://ZZZ.hoge.com
http://YYY.hoge.com