Apachでマルチドメインする方法
マルチドメインとは
一つのウェブサーバーで二つ以上のドメインを扱うことをマルチドメインと言います。例えば、a.com
と検索すると/var/www/html/index.html
を表示させ、b.com
と検索すると/var/www/html/b/index.html
を表示させるみたいなことを実現することができます。a.com
もb.com
も同じ11.222.33.444
。という一つのipを参照します
前提
a.com
とb.com
のDNSゾーンを最初に作って、二つのドメインが一つのIP(11.222.33.444)を指定されている状態にしてでおいてください。ここの説明は省きます。簡単に説明すると、最初にa.com
と検索すると/var/www/html/index.html
と表示されてた場合、b.com
と検索しても/var/www/html/index.html
と表示されるような状態に、どうにか持って行ってください。参考までに、下記のようなDNS レコードを作ってください。
Aレコード a.com 11.222.33.444
Aレコード b.com 11.222.33.444
httpd.confを探す
Apachの設定を書き換えるため、httpd.confを編集する必要があります。下記のコマンドでhttpd.confの場所を探すことができます
$ ps aux | grep httpd
root 25261 0.0 5.7 206664 28796 ? Ss 04:42 0:00 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf -DDISABLE_BANNER
daemon 25269 0.1 4.1 1288432 20588 ? Sl 04:42 0:00 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf -DDISABLE_BANNER
daemon 25270 0.7 7.7 1308544 38712 ? Sl 04:42 0:01 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf -DDISABLE_BANNER
daemon 25409 0.0 2.3 1017940 11784 ? Sl 04:42 0:00 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf -DDISABLE_BANNER
bitnami 25483 0.0 0.1 14224 972 pts/0 S+ 04:44 0:00 grep --color=auto httpd
上記であれば/opt/bitnami/apache2/conf/httpd.conf
ね。
Apachのバージョンを確認する
Apachのバージョンに寄って設定の書き方が多少変わってきますので、正確にApachのバージョンは把握しておいてください。
$ httpd -v
Server version: Apache/2.4.29 (Unix)
Server built: Feb 26 2018 13:12:05
バーチャルホストの設定
バーチャルホストを設定します b
ディレクトリの下にindex.html
があればindex.html
は不要です。これでb.com
と検索すると/var/www/html/b/
配下のindex.html
を表示してくれます
<VirtualHost *:80>
ServerName b.com
DocumentRoot /var/www/html/b/
</VirtualHost>
パーミッションエラー対策
VirtualHostによる接続を許可するためにhttpd.conf
の中の<Directory />
から始まる項目を下記のように書き換えます。
<Directory /> Options All AllowOverride All </Directory>
完了
これでもb.comと検索をしてみてください。上手くいくはずです。