TOP » Apache HTTP Server で Web サーバー構築 » Apache HTTP Server 2.2 » Apache のバーチャルホスト

Apache のバーチャルホスト

バーチャルホストとは、1 台のマシンで複数の Web サイト扱う運用方法のことをいいます。
Apache のバーチャルホストには、名前ベースのバーチャルホストと IP ベースのバーチャルホストがあります。
名前ベースのバーチャルホストとは、ひとつの IP アドレスで複数のウェブサイトを運営する場合に使い、IP ベースのバーチャルホストとはウェブサイトごとに IP アドレスを使用する方法のことをいいます。
ここでは honana.com と virtualhost.com のふたつのウェブサイト使って名前ベースのバーチャルホストを設定する方法について解説します。(DNS サーバーによって名前解決が正しく行われている必要があります)

バーチャルホストの公開ディレクトリの作成

バーチャルホストのコンテンツを格納するためのディレクトリを作成します。

# mkdir -p /virtual/honana.com/public_html
# mkdir -p /virtual/virtualhost.com/public_html

バーチャルホストのログファイルを格納するためのディレクトリを作成します。

# mkdir -p /virtual/honana.com/logs
# mkdir -p /virtual/virtualhost.com/logs

Apache をユーザー権限で実行している場合はバーチャルホストのディレクトリの所有者を Apache 実行ユーザーに変更します。

# chown -R httpd:httpd /virtual

Apache の設定

Apache の設定ファイル httpd.conf を編集してバーチャルホストの設定ファイル extra/httpd-vhosts.conf を読み込むように設定します。

# vi /usr/local/httpd/conf/httpd.conf
/usr/local/httpd/conf/httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.confコメントアウトされている行を有効にする

extra/httpd-vhosts.conf ファイルを編集してバーチャルホストの設定を行います。
このとき httpd-vhosts.conf の既存の設定はコメントアウトするか削除します。

# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
/usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin webmaster@honana.com
    DocumentRoot /virtual/honana.com/public_html
    ServerName honana.com

    ErrorLog /virtual/honana.com/logs/error_log
    CustomLog /virtual/honana.com/logs/access_log combined

    <Directory “/virtual/honana.com/public_html”>
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@virtualhost.com
    DocumentRoot /virtual/virtualhost.com/public_html
    ServerName virtualhost.com

    ErrorLog /virtual/virtualhost.com/logs/error_log
    CustomLog /virtual/virtualhost.com/logs/access_log combined

    <Directory “/virtual/virtualhost.com/public_html”>
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Apache の再起動

Apache の設定ファイルを変更した後は Apache を再起動する必要があります。

# /usr/local/httpd/bin/apachectl graceful

バーチャルホストの設定を有効にした場合、httpd.conf で設定したメインの ServerName ディレクティブと DocumentRoot ディレクティブは無効になります。
また httpd.conf で設定されていないホスト名でアクセスがあった場合はデフォルトのホストとして最初のバーチャルホストの設定が適用されます。

カテゴリー
Fedora のインストール
ネットワーク設定
OpenSSH で SSH サーバー構築
NTP で時刻情報サーバー構築
Apache HTTP Server で Web サーバー構築
MySQL でデーターベースサーバー構築
PostgreSQL でデーターベースサーバー構築
PHP で Web アプリケーションサーバー構築
qmail でメールサーバー構築
Samba でファイルサーバー構築
BIND でネームサーバー構築
Tomcat で Web アプリケーションサーバー構築
ProFTPD で FTP サーバー構築
システム設定
CMS でサイト構築
snort でネットワーク進入探知システム構築
ライブラリのインストール