EC2サーバ上のApacheでバーチャルホストを利用し複数ドメインを運用する方法です。
新しいドメイン名を追加する設定
httd.confの最後あたりに、以下の行を追加してください。
NameVirtualHost *:80 <VirtualHost *:80> ServerName olddomain.com # 今まで使っていたドメイン DocumentRoot "/var/www/html" # 公開していたディレクトリ </VirtualHost> <VirtualHost *:80> ServerName newdomain.com # 新しいドメイン DocumentRoot "/var/www/html" # 新しいドメインの公開したいディレクトリ </VirtualHost>
※「*」を使ってIPアドレスを指定しているのがポイントです。EC2のPublic IPアドレスを設定しても動かないので注意です。
※自分が今まで使っていたドメインの設定も必要な点に注意です。
※UseCanonicalNameはOffのままで大丈夫です。ServerNameの設定も不要です。
上記の設定を追記するだけでバーチャルホストの設定は完了です。
% service httpd restart
このコマンドでApacheを再起動すればバーチャルホストの設定が即反映されます。
今までのドメイン名にサブドメインを追加する設定
httd.confの最後あたりに、以下の行を追加してください。
NameVirtualHost *:80 <VirtualHost *:80> ServerName olddomain.com # 今まで使っていたドメイン DocumentRoot "/var/www/html" # 公開していたディレクトリ </VirtualHost> <VirtualHost *:80> ServerName subdomain.olddomain.com # 新しいサブドメイン DocumentRoot "/var/www/html_another" # 新しいサブドメインの公開したいディレクトリ </VirtualHost>
※「*」を使ってIPアドレスを指定しているのがポイントです。EC2のPublic IPアドレスを設定しても動かないので注意です。
※自分が今まで使っていたドメインの設定も必要な点に注意です。
※UseCanonicalNameはOffのままで大丈夫です。ServerNameの設定も不要です。
上記の設定を追記するだけでバーチャルホストの設定は完了です。
% service httpd restart
このコマンドでApacheを再起動すればバーチャルホストの設定が即反映されます。
複数のサブドメインの設定を一箇所にまとめる
httd.confの最後あたりに、以下の行を追加してください。
NameVirtualHost *:80 <VirtualHost *:80> ServerName domain.com # ↓この設定により、全てのサブドメインへのアクセスがメインのドメインへのアクセスになります ServerAlias domain.com *.domain.com DocumentRoot "/var/www/html" </VirtualHost>
※「*」を使ってIPアドレスを指定しているのがポイントです。EC2のPublic IPアドレスを設定しても動かないので注意です。
※UseCanonicalNameはOffのままで大丈夫です。ServerNameの設定も不要です。
上記の設定を追記するだけでバーチャルホストの設定は完了です。
% service httpd restart
このコマンドでApacheを再起動すればバーチャルホストの設定が即反映されます。
設定ミスの確認は「httpd -S」
下記のコマンドを実行すると、バーチャルホストの設定に文法ミスがないかどうかメッセージが表示されます。
% httpd -S
表示されるメッセージに従って設定を変えてみてください。