Apache のVirtualHostについて、ネームベースの設定について紹介します。今回の設定条件は、IPアドレスは1つを複数のドメインに対して別々で公開します。下記の環境を想定してVirtualHostの設定をしていきます。
サイト aaa の設定 | サイト bbb の設定 | |
IPアドレス | 共通(127.0.0.1) | 共通(127.0.0.1) |
ポート | 共通(80番) | 共通(80番) |
ホスト名 | www.aaa.jp | www.bbb.com |
公開フォルダー | /home/aaa/ | /home/bbb/ |
1. 設定をする前に
設定をする前に、/home/の直下にaaaとbbbのフォルダーを作り、それぞれに、index.htmlを設置してください。ファイルの内容は、自由です。ブラウザでアクセスしたとき、夫々が区別のつく内容にしてください。
2. VirtualHostを有効のする
httpd.conf ファイルを編集し、VirtualHostを有効にします。
[root@localhost ~]# vi /usr/local/apache2/conf/httpd.conf
#Include conf/extra/httpd-vhosts.conf
↓コメントアウト(ファイルの最後の方に記述)
Include conf/extra/httpd-vhosts.conf
3. VirtualHostの設定を記述する
[root@localhost ~]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80 ←確認してください。(20行目ぐらい)
下記の容量で追記してください。
# サイト aaa の設定
< VirtualHost *:80>
ServerAdmin xxx@shinbo.org ←メールアドレス(特に指定はない)
DocumentRoot /home/aaa ←公開フォルダー
ServerName aaa.jp ←ドメイン名
ServerAlias *.aaa.jp ←ドメインの別名(サブドメでアクセスしたとき、ここの値が反映)
ErrorLog logs/www.aaa.jp-error_log ←エラーログ(記述しなくてもOK)
CustomLog logs/ww.aaa.jp-access_log ←アクセスログ(記述しなくてもOK)
< /VirtualHost>
# サイト bbb の設定
< VirtualHost *:80>
ServerAdmin xxx@shinbo.org
DocumentRoot /home/bbb
ServerName bbb.com
ServerAlias *.bbb.com
ErrorLog logs/www.bbb.jp-error_log
CustomLog logs/ww.bbb.jp-access_log
< /VirtualHost>
ServerAliasに「*」を使いましたが、この場合、www.aaa.jp、test.aaa.jpでアクセスしても同じ場所を公開します。www.aaa.jpのみ公開したい場合は、「ServerAlias www.aaa.jp」と明記してください。
以上の様に設定が完了しましたら、apacheを再起動します。
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart
4. ローカルで確認する
hostsファイルを編集し、www.aaa.jp、www.bbb.comがローカルを表示するようにする。
[root@localhost ~]# vi /etc/hosts
127.0.0.1 www.aaa.jp
127.0.0.1 www.bbb.com
をファイルの追記してください。
ブラウザで、www.aaa.jp、www.bbb.comを入力し、自分が設置したファイルが確認できたら完了です。
*>——————————————————————————————<* (VirtualHostについて) ネームベースで設定したときの欠点は、IPアドレスでアクセスした場合、「httpd-vhosts.conf」ファイルの一番上に記述しているサイトを表示しますので注意してください。 今回紹介した方法以外にも、IPアドレスやユーザーごとに、公開場所を設定もできます。かなり、幅広く設定でいますので、ご自分の使用用途に合わせた設定をしてください。