ここでは、Apacheによるバーチャルホストの設定方法について説明します。 そもそも、バーチャルホストって何でしょうか? 例えば,通常インターネットを使用する場合にはhttp://www.hogegoge.jp/と入力しますが、 「www.hogehoge.jp」と「hoge.hogehoge.jp」のように複数のサイトを構築できればwebサイトの運用も楽できますね。 これを実現させるためにはバーチャルホスト環境を構築すれば良いわけです。 バーチャルホスト環境を構築するには「IPベース」と「NAMEベース」で構築する方法があります。 では、例によって簡単に確実に構築手順を説明します。
BINDの再設定 Apacheの再設定 ◆BINDの再設定 ここでは既にBINDは設定されているという条件です。 IPベースの場合 ホストごとにIPアドレスを付与してBINDのゾーンファイルに以下のように追加します。 # vi /var/named/hero-island.zone ←hero-island.zoneはnamed.zoneファイルです。 www IN A 172.16.1.11 hoge IN A 172.16.1.12 :wqで保存して終了します。 # /etc/rc.d/rc.bind restart ← BINDを再起動します。 Slackware以外の方は# /etc/rc.d/init.d/named restartかな? NAMEベースの場合 IPベースの場合は、Aレコードで各ホストとIPアドレスの対応をDNSに登録しました。 しかし、NAMEベースの場合はIPアドレスが1つしか使用できません。だからAレコードで複数登録することはしません。 そこでNAMEベースでは、1ホスト分のAレコードで登録して、複数のホストをCNAMEレコードで別名定義をします。 例えば、「www」と「hoge」という2つのホストを172.16.1.12という1つのIPアドレスで運用するなら # vi /var/named/hero-island.zone ←hero-island.zoneはnamed.zoneファイルです。 www IN CNAME you.ドメイン名. hoge IN CNAME you.ドメイン名. :wqで保存して終了します。 # /etc/rc.d/rc.bind restart ← BINDを再起動します。 トップへ戻る ◆Apacheの再設定Apacheも既にインストールされて既に運用されている状態です。 # cd /var/lib/apache/conf ← httpd.confがあるディレクトリにcdします。 /var/lib/apache/conf # vi httpd.conf ← httpd.confを修正しましょう。 # Virtual hosts Include conf/extra/httpd-vhosts.conf ← 398行目付近#を外します。 :wqでhttpd.confを保存終了します。 バーチャルホストを立ち上げる場合は、/var/lib/apache/conf/extra/httpd-vhosts.confを以下のように修正します。 IPベースの場合 # Use name-based virtual hosting. # #NameVirtualHost *:80 NameVirtualHost xxx.xxx.xxx.xxx:80 ← #を外してxxx.xxx.xxx.xxxはIPアドレス # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for requests without a known # server name. # <VirtualHost 172.16.1.11:80> ServerName www.hogehoge.jp DocumentRoot /var/lib/apache/htdocs← ドキュメントの位置を指定します ServerAdmin admin@hoge.com← 管理者のメールアドレス ErrorLog /var/log/apache/error_log← apacheのエラーログ TransferLog /var/log/apache/access_log← apacheのアクセスログ </VirtualHost> <VirtualHost 172.16.1.12:80> ServerName hoge.hoge.hoge.jp DocumentRoot /opt/www/htdocs← ドキュメントの位置を指定します ServerAdmin admin1@hoge.com← 管理者のメールアドレス ErrorLog /var/log/apache1/error_log← apacheのエラーログ TransferLog /var/log/apache1/access_log← apacheのアクセスログ </VirtualHost> NAMEベースの場合 # Use name-based virtual hosting. # NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for requests without a known # server name. # <VirtualHost *:80> ServerName www.hogehoge.jp DocumentRoot /var/lib/apache/htdocs← ドキュメントの位置を指定します ServerAdmin admin@hoge.com← 管理者のメールアドレス ErrorLog /var/log/apache/error_log← apacheのエラーログ TransferLog /var/log/apache/access_log← apacheのアクセスログ </VirtualHost> # <VirtualHost *:80> ServerName hoge.hoge.hoge.jp DocumentRoot /opt/www/htdocs← ドキュメントの位置を指定します ServerAdmin admin1@hoge.com← 管理者のメールアドレス ErrorLog /var/log/apache1/error_log← apacheのエラーログ TransferLog /var/log/apache1/access_log← apacheのアクセスログ </VirtualHost> #/var/lib/apache/bin/apachectl -t ←httpd.confで記述に間違いがないか確認をします。 #Syntax OK ←このように表示されれば問題ない。 前ページへ戻る ご質問・お問い合わせ - 免責事項 Copyright (C) 1998 hero-island. All Rights Reserved.
◆BINDの再設定 ここでは既にBINDは設定されているという条件です。
IPベースの場合 ホストごとにIPアドレスを付与してBINDのゾーンファイルに以下のように追加します。
# vi /var/named/hero-island.zone ←hero-island.zoneはnamed.zoneファイルです。 www IN A 172.16.1.11 hoge IN A 172.16.1.12 :wqで保存して終了します。 # /etc/rc.d/rc.bind restart ← BINDを再起動します。 Slackware以外の方は# /etc/rc.d/init.d/named restartかな?
NAMEベースの場合 IPベースの場合は、Aレコードで各ホストとIPアドレスの対応をDNSに登録しました。 しかし、NAMEベースの場合はIPアドレスが1つしか使用できません。だからAレコードで複数登録することはしません。 そこでNAMEベースでは、1ホスト分のAレコードで登録して、複数のホストをCNAMEレコードで別名定義をします。 例えば、「www」と「hoge」という2つのホストを172.16.1.12という1つのIPアドレスで運用するなら
# vi /var/named/hero-island.zone ←hero-island.zoneはnamed.zoneファイルです。 www IN CNAME you.ドメイン名. hoge IN CNAME you.ドメイン名. :wqで保存して終了します。 # /etc/rc.d/rc.bind restart ← BINDを再起動します。
トップへ戻る
◆Apacheの再設定Apacheも既にインストールされて既に運用されている状態です。
# cd /var/lib/apache/conf ← httpd.confがあるディレクトリにcdします。 /var/lib/apache/conf # vi httpd.conf ← httpd.confを修正しましょう。 # Virtual hosts Include conf/extra/httpd-vhosts.conf ← 398行目付近#を外します。 :wqでhttpd.confを保存終了します。
バーチャルホストを立ち上げる場合は、/var/lib/apache/conf/extra/httpd-vhosts.confを以下のように修正します。 IPベースの場合
# Use name-based virtual hosting. # #NameVirtualHost *:80 NameVirtualHost xxx.xxx.xxx.xxx:80 ← #を外してxxx.xxx.xxx.xxxはIPアドレス # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for requests without a known # server name. # <VirtualHost 172.16.1.11:80> ServerName www.hogehoge.jp DocumentRoot /var/lib/apache/htdocs← ドキュメントの位置を指定します ServerAdmin admin@hoge.com← 管理者のメールアドレス ErrorLog /var/log/apache/error_log← apacheのエラーログ TransferLog /var/log/apache/access_log← apacheのアクセスログ </VirtualHost> <VirtualHost 172.16.1.12:80> ServerName hoge.hoge.hoge.jp DocumentRoot /opt/www/htdocs← ドキュメントの位置を指定します ServerAdmin admin1@hoge.com← 管理者のメールアドレス ErrorLog /var/log/apache1/error_log← apacheのエラーログ TransferLog /var/log/apache1/access_log← apacheのアクセスログ </VirtualHost>
NAMEベースの場合
# Use name-based virtual hosting. # NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for requests without a known # server name. # <VirtualHost *:80> ServerName www.hogehoge.jp DocumentRoot /var/lib/apache/htdocs← ドキュメントの位置を指定します ServerAdmin admin@hoge.com← 管理者のメールアドレス ErrorLog /var/log/apache/error_log← apacheのエラーログ TransferLog /var/log/apache/access_log← apacheのアクセスログ </VirtualHost> # <VirtualHost *:80> ServerName hoge.hoge.hoge.jp DocumentRoot /opt/www/htdocs← ドキュメントの位置を指定します ServerAdmin admin1@hoge.com← 管理者のメールアドレス ErrorLog /var/log/apache1/error_log← apacheのエラーログ TransferLog /var/log/apache1/access_log← apacheのアクセスログ </VirtualHost>
前ページへ戻る