さくらVPSでvirtual hostの設定して複数サイトに対応する

最近virtual hostを切るような構成を仕事でもよく目にするようになったなー。
ということで、どのようにして実現しているのか調べて、このサイトで実装してみた。

実際には以下の手順

1. virtual host用の設定ファイルvhost.confの作成

/etc/httpd/conf.d/ 以下にvhost.confを作成。

以下のような記述を追加

<div>NameVirtualHost *:80

</div>
<div>&lt;Directory /&gt;
AllowOverride All
&lt;/Directory&gt;</div>
<div>#
# default virtualhost
#
&lt;VirtualHost *:80&gt;
ServerName main.XXXX.com
&lt;/VirtualHost&gt;</div>
<div>
#</div>
<div># hogehogeサイト</div>
<div>#</div>
<div>&lt;VirtualHost *:80&gt;
ServerAlias hogehoge.XXXXX.com
VirtualDocumentRoot /home/www/hogehoge.XXXXX.com/htdocs
VirtualScriptAliasツꀀ/home/www/hogehoge.XXXXX.com/cgi-bin</div>
<div>ツꀀツꀀツꀀ &lt;Directory /&gt;
Options All
AllowOverride All
&lt;/Directory&gt;
&lt;/VirtualHost&gt;</div>
<div>#
<div># fugafugaサイト</div>
<div>#</div>
<div>&lt;VirtualHost *:80&gt;
ServerAlias fugafuga.XXXXX.com
VirtualDocumentRoot /home/www/fugafuga.XXXXX.com/htdocs
VirtualScriptAliasツꀀ/home/www/fugafuga.XXXXX.com/cgi-bin</div>
<div>ツꀀツꀀツꀀ &lt;Directory /&gt;
Options All
AllowOverride All
&lt;/Directory&gt;
&lt;/VirtualHost&gt;</div>
</div>

2. httpd.confの設定

http.conf内で、「Include conf.d/vh.conf」の設定を記述する
(既にInclude conf.d/*という記述があるが、これを使うとwelcome.confとかもすべてのサイトに適用されてしまうので、必要なconfのみインクルードするようにした)

3. apache再起動

/etc/rc.d/init.d/httpd restart

まだドメインをとっていないのでhostsを利用してアクセスしてみたら問題なく表示。