Apache2 VirtualHost 設定

Apache2 でバーチャルホストの設定をした。簡単にメモを残しておく。

通常の私の Web とこの Blog を別 URLでアクセスし分けることが目的。このつまらない Blog が同一人物のものと思われないようにするためである。まあわかる人にはわかってしまうのだけれども。

http://mywebsite/ — (1) 通常の Web サイト
http://blogsite/ — (2) Blog のサイト

ということで設定する。ともに同じサーバにあるのだが,別のホスト上にあるサイトに見えるようにする。Apache2 VirtualHost 機能のうちネームベースのバーチャルホストとする。

(1) と (2) でコンテンツも,CGI もディレクトリを別にする。

(1) mywebsite
- data: /usr/local/www/data
- cgi-bin: /usr/local/www/cgi-bin

(2) blogsite
- data: /usr/local/www/blog/data
- cgi-bin: /usr/local/www/blog/cgi-bin

httpd.conf に以下のように書く。当然バックアップをとって,新定義は別のファイル名で作成して,直前に切替える。

NameVirtualHost *:80
# (1) mywebsite
<VirtualHost *:80>
    DocumentRoot /usr/local/www/data
    ServerName mywebsite
# (1) に関する <Directory> ディレクティブを記述
# cgi-bin は /usr/local/www/cgi-bin に設定
</VirtualHost>
 
# (2) blogsite
<VirtualHost *:80>
    DocumentRoot /usr/local/www/blog/data
    ServerName blogsite
# (2) に関する <Directory> ディレクティブを記述
# cgi-bin は /usr/local/www/blog/cgi-bin に設定
</VirtualHost>

できたら,apache2 をいったん停止し,新定義に入れ替える。

一応,新 httpd.conf のシンタックスチェックをして,OK なら apache2 を再起動する。

# apachectl -t
# apachectl restart

Blog hoge を /usr/local/www/blog/data/hoge/ 下に作成したとして,http://blogsite/hoge/ ならアクセスできるが,http://mywebsite/hoge/ だと 404 エラーとなって閲覧できないはず。

かくして,blogsite は mywebsite を知る人にも普通は隠しておけるわけだ。
Apache2 って便利だとつくづく思う。