|   HOME  |   ゲストブック  |   掲示板  |     |   更新履歴  |   リンク  |   お問合せ  


Apacheのバーチャルホストの設定例



Apacheのバーチャルホストの設定例を紹介します。

図に示すようなファルダ構成で、aaa.com,bbb.com,ccc.comの3つのドメインを運用する事を想定し説明します。
バーチャルホストの設定は、Httpd.confをエディタ等のツールで以下の個所を修正します。
httpd.confは、Ver1.3.27。説明上の数字は行番号です。




フォルダ構成

メインのフォルダをc:\home\htdocs\publicへ変更します。

301:DocumentRoot "C:/usr/Apache/htdocs"
       DocumentRoot "C:/home/htdocs/public"


メインフォルダの詳細な定義を<Directory>〜</Directory>へ定義します。

326:<Directory "C:/usr/Apache/htdocs">
       <Directory "C:/home/htdocs/public">

335:     Options Indexes FollowSymLinks MultiViews
            Options All
Option All は(Includes ndexes FollowSymLinks MultiViews ExecCGI)を全て含みます

342:     AllowOverride None
347:     Order allow,deny
348:     Allow from all
349:</Directory>


bbb.com用のフォルダを追加定義します。追加する場所は、一箇所にまとめた方があとの見直しがやり易くなります。

350:<Directory "C:/home/bbb/public">
351:     Options All
352:     AllowOverride None
353:     Order allow,deny
354:     Allow from all
355:</Directory>


ccc.com用のフォルダを定義します。

356:<Directory "C:/home/ccc/public">
357:     Options All
358:     AllowOverride None
359:     Order allow,deny
360:     Allow from all
361:</Directory>


CGI用の定義を#でコメントアウトします。この定義を残した場合、各ドメインの共有CGIとして使う事ができます。

610:#ScriptAlias /cgi-bin/ "C:/usr/Apache/cgi-bin/"

616:#<Directory "C:/usr/Apache/cgi-bin">
617:#    AllowOverride None
618:#    Options None
619:#    Order allow,deny
620:#    Allow from all
621:#</Directory>


CGIをApacheへ組込む定義です。これを忘れるとCGIが動きません。

826: #AddHandler cgi-script .cgi
          AddHandler cgi-script .cgi


1007行目からは、バーチャルドメインを利用するために必要な設定です。1007行目の#マーク(コメント)を外してください。
1015〜1037行が、各々バーチャルホストに関わる各フォルダの設定です。各定義へCGIを設定する事により、全てのドメインで個別にCGIを動かせるようにします。CGIに関するDirectory設定を行う必要はありません。

1007:#NameVirtualHost *

aaa.comのバーチャル設定
1015:<VirtualHost *>
1016:    ServerAdmin webmaster@aaa.com
1017:    DocumentRoot c:/home/htdocs/public
1018:    ServerName www.aaa.com
1019:    ErrorLog logs/aaa.com-error_log
1020:    CustomLog logs/aaa.com-access_log common
1021:   ScriptAlias /cgi-bin/ "c:/home/htdocs/public/cgi-bin/"
1022:</VirtualHost>

bbb.comのバーチャル設定
1023:<VirtualHost *>
1024:    ServerAdmin webmaster@bbb.com
1025:    DocumentRoot c:/home/bbb/public
1026:    ServerName www.bbb.com
1027:    ErrorLog logs/bbb.com-error_log
1028:    CustomLog logs/bbb.com-access_log common
1029:   ScriptAlias /cgi-bin/ "c:/home/bbb/public/cgi-bin/"
1030:</VirtualHost>

ccc.comのバーチャル設定
1031:<VirtualHost *>
1032:    ServerAdmin webmaster@ccc.com
1033:    DocumentRoot c:/home/ccc/public
1034:    ServerName www.ccc.com
1035:    ErrorLog logs/ccc.com-error_log
1036:    CustomLog logs/ccc.com-access_log common
1029:   ScriptAlias /cgi-bin/ "c:/home/ccc/public/cgi-bin/"
1037:</VirtualHost>


注)
バーチャルホストの定義とチルダの定義は共存ができません。共存設定を行った場合、他のドメインからアクセスができるゴースト現象が発生します。

ゴーストとは、例えば、xxx.htmlなるドキメントがbbb.com/server/xxx.htmlに存在してもaaa.com/server/xxxx.htmlやccc.com/server/xxx.htmlからアクセスが行える事を言います。

チルダとは http://aaa.com/~bbb/index.html などと~(チルダ記号)を使い個別フォルダへアクセスできるように設定する事を言います。