一つのIPアドレスで複数のWebサイトを運営するapacheの設定

サーバに割り当てられたIPアドレスは一つだけど、DNSの設定で割り当てたサブドメインごとにWebサイトを構築したい場合のメモ。

例えば
http://cotv.exbridge.jp/
http://hoge.exbridge.jp/
は同じIPに名前解決されるけど、それぞれ別のWebサイトとして表示したい場合、webサーバ(apache)のバーチャルホストの設定をしてあげることで実現できます。詳しくはここのドキュメントで。

以下設定例

NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot /www/example1
  ServerName cotv.exbridge.jp
  # Other directives here
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /www/example2
  ServerName hoge.exbridge.jp
  # Other directives here
</VirtualHost>

@ITの記事も参考に。
第8回 バーチャルホストによる複数サイトの同時運用

 

<2009/05/19 追記>
Wordpress MUなどでサブドメインとして各ユーザのブログURLを発行するシステムの場合(例えばhttp://se-suganuma.hoge.exbridge.jp/とか)、ServerNameの他にServerAliasを使って設定する。

DNSには

a *.hoge 123.456.789.123

と書いておいてapacheのconfigファイルには

<VirtualHost *:80>
  DocumentRoot /www/example2
  ServerName hoge.exbridge.jp 
  ServerAlias *.hoge.exbridge.jp
  # Other directives here
</VirtualHost>

と記述する。

これで***.hoge.exbridge.jpのアドレスは全て/www/example2を参照するようになる。