【Apache 2.4.6 】VirtualHost(仮想ホスト)の設定方法

Apache HTTP ServerでひとつのWebサーバで複数のサイトを運用出来る、VirtualHost(仮想ホスト)の設定方法をメモします。

この機能を実現するためには、アクセス可能にしたい全てのドメインに対してDNS(ネームサーバ)の設定であらかじめ名前解決させておく必要があります。

(ローカル開発環境で同じことをやりたい場合は下記を参照)

(Mac)ApacheのVirtual Hostでローカル開発環境を構築する

環境:CentOS 7.8, Apache HTTP Server 2.4.6


Apacheの設定ファイルを管理者権限で編集する

# vi /etc/httpd/conf/httpd.conf

insertモードで空いている箇所(最下部でOK)へ下記のように記述を行います。
有効にするドメインの数だけVirtualHostのタグを設定します。

<VirtualHost *:80>
  DocumentRoot /var/www/sub1
  ServerName sub1.example.com
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /var/www/sub2
  ServerName sub2.example.com
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /var/www/html
  ServerName example.com
</VirtualHost>
ServerName
アクセスするドメイン名
DocumentRoot
ドメインに紐付ける公開ディレクトリ

Apacheのドキュメントルート (Web公開ディレクトリ)の場所はデフォルトで/var/www/htmlですが
上記のように、アクセスするドメインごとにそれぞれ別々のドキュメントルートを割り当てる事が出来ます。

設定ファイルの保存が完了したら、Apacheを再起動します。
# systemctl restart httpd

ブラウザから設定したドメインでアクセスし、それぞれのドキュメントルート配下の内容を表示することが出来たら完了です。

また、
上記のVirtualHostの設定は/etc/httpd/conf/httpd.conf内のインクルードオプション、「IncludeOptional conf.d/*.conf」が有効になっていれば、別ファイルに設定を記述することも出来ます。

(例) /etc/httpd/conf.d/vhost.conf を作成してこちらにVirtualHostの設定を記述する。

Follow me!