Apacheでネーム(名前)ベースのバーチャルホスト設定

カテゴリ:Apache 2.2の設定
日時:2010/03/04 23:23

バーチャルホストにはネーム(名前)ベースとIPベースの2種類がある。ここでは、グローバルIPアドレスが1つしかなくても実現可能な、ネームベースのバーチャルホストの設定方法を紹介する。

設定ファイルは、各バーチャルホスト固有の設定を記述するファイルと、それらのファイルを読み込ませるための主設定ファイルの2種類。

バーチャルホスト個別の設定は、/etc/apache2/vhosts.d/default_vhost.includeを必要なホストの分だけコピーして作成すればよい。当サイトの場合は、

・http://reichsarchiv.jp/
/etc/apache2/vhosts.d/default_vhost.include

・http://gentoo.reichsarchiv.jp/
/etc/apache2/vhosts.d/gentoo_vhost.include

・http://kyogoku.reichsarchiv.jp/
/etc/apache2/vhosts.d/kyogoku_vhost.include

とした。 各ファイルの内容はほとんど同じ。変更しているのは、各バーチャルホスト用のドキュメントルートである。

/etc/apache2/vhosts.d/default_vhost.include
DocumentRoot "/home/httpd/html"
<Directory "/home/httpd/html">
~設定~
</Directory>
/etc/apache2/vhosts.d/gentoo_vhost.include
DocumentRoot "/home/httpd/gentoo"
<Directory "/home/httpd/gentoo">
~設定~
</Directory>
/etc/apache2/vhosts.d/kyogoku_vhost.include
DocumentRoot "/home/httpd/kyogoku"
<Directory "/home/httpd/kyogoku">
~設定~
</Directory>
主設定ファイルは、単独ホストの設定とApacheの起動設定でも使った/etc/apache2/vhosts.d/00_default_vhost.conf。VirtualHostディレクティブを使って、各設定ファイルをインクルードする。
<IfDefine DEFAULT_VHOST>
Listen 80
NameVirtualHost *:80
<VirtualHost *:80>
        Include /etc/apache2/vhosts.d/default_vhost.include
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
</VirtualHost>

<VirtualHost *:80>
        Include /etc/apache2/vhosts.d/kyogoku_vhost.include
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
</VirtualHost>

<VirtualHost *:80>
        Include /etc/apache2/vhosts.d/gentoo_vhost.include
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
</VirtualHost>
</IfDefine>
設定が終わったら、
/etc/init.d/apache2 restart
でApacheを再起動する。