Apacheでバーチャルホスト

ホスティングサービスみたいに aaa.example.com, bbb.example.com
複数ドメインがあるっぽく運用する設定例。IPアドレスはひとつ。


まず、DNSのCNAMEに *.example.comワイルドカードで登録しておく。

んで、/etc/httpd/conf/httpd.conf に

#
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf

ってあれば、/etc/httpd/conf.d/ に virtualhost.conf とか拡張子が.confの適当なファイルを作成して以下を記述。
なければhttpd.conに直接記述するか、Include conf.d/*.confを記述すればいいのかな?

NameVirtualHost *:80

# メイン
<VirtualHost *:80>
  ServerName www.example.com
  DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
  ServerName aaa.example.com
  DocumentRoot /home/aaa/public_html
  ScriptAlias /cgi-bin/ "/home/aaa/public_html/cgi-bin/" # CGIを動かす場合
</VirtualHost>

設定ファイルを再読み込み。

/etc/rc.d/init.d/httpd reload

アクセス確認は、クライアントのhostsファイルに

192.168.0.2	www.example.com
192.168.0.2	aaa.example.com

と書いてブラウザからアクセス。DocumentRootにはhttpd.confのDirectoryIndexに指定してあるファイル(index.htmlなど)を置いておこう。