Log in

CentOS でサーバー構築 - apache のバーチャルホストでマルチドメイン対応

目次へ戻る

このサーバーでは http://amuplus.jp/http://omoshiro-device.jp/ の 2つのサイトが 1つの apache 上で動いています。これは apache のバーチャルホストの機能でやってます。別の仮想マシンにする方法もありますが、どういう感じになるのか試してみたかったのでこうしました。

/etc/httpd/conf/httpd.conf を以下の様な感じで編集します。

# ServerName は VirutalHost のところで指定するのでコメントアウト
#ServerName www.amuplus.jp

NameVirtualHost *:80

# いったんすべて禁止
<VirtualHost *:80>
    ServerName any
    <Location />
        Order deny,allow
        Deny from all
    </Location>
</VirtualHost>

# amuplus.jp の方の設定
<VirtualHost *:80>
    ServerName www.amuplus.jp
    ServerAlias amuplus.jp
    DocumentRoot /www/docs/www.amuplus.jp
    ErrorLog logs/www.amuplus.jp-error_log
    CustomLog logs/www.amuplus.jp-access_log combined env=!no_log
</VirtualHost>

# omoshiro-device.jp の方の設定
<VirtualHost *:80>
    ServerName www.omoshiro-device.jp
    ServerAlias omoshiro-device.jp
    DocumentRoot /www/docs/www.omoshiro-device.jp/www
    ErrorLog logs/www.omoshiro-device.jp-error_log
    CustomLog logs/www.omoshiro-device.jp-access_log combined env=!no_log
</VirtualHost>

# omoshiro-device.jp の方は .htaccess を使えるようにする
<Directory "/www/docs/www.omoshiro-device.jp/www">
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

だいたいこんな感じです。
ちなみに、上記では ServerAlias を使って www.amuplus.jp でも amuplus.jp でもどちらでもアクセスできるようにしています。ドキュメントルートの場所やアクセスログ、エラーログの名前なんかはこれが適切なのかどうかはよくわかりません。
また、バーチャルホストの設定を httpd.conf ではなく別ファイルにしたりとかもできるようです。

目次へ戻る