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
設定ファイルは、各バーチャルホスト固有の設定を記述するファイルと、それらのファイルを読み込ませるための主設定ファイルの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"/etc/apache2/vhosts.d/gentoo_vhost.include
<Directory "/home/httpd/html">
~設定~
</Directory>
DocumentRoot "/home/httpd/gentoo"/etc/apache2/vhosts.d/kyogoku_vhost.include
<Directory "/home/httpd/gentoo">
~設定~
</Directory>
DocumentRoot "/home/httpd/kyogoku"主設定ファイルは、単独ホストの設定とApacheの起動設定でも使った/etc/apache2/vhosts.d/00_default_vhost.conf。VirtualHostディレクティブを使って、各設定ファイルをインクルードする。
<Directory "/home/httpd/kyogoku">
~設定~
</Directory>
<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を再起動する。