Apache Virtual Hostで複数のサイトを表示する

ApacheのVirtual Hostの機能で複数のサイトを表示するサンプルです。
(確認環境:XAMPP,Apache/2.4.46,Windows 10)

目次

サンプル Virtual Hostとは
  やりたいこと
  httpd.confファイルを修正する
  自作の外部ファイルに記述する
  設定の確認

Virtual Hostとは

ApacheのVirtual Hostの機能は、複数のドメインのWebサイトを同一のサーバ上(Apache)で管理できます。

Virtual Hostは、各Webサイトに対して独自の設定を行うことができます。
例えば、それぞれのWebサイトに対して異なるドキュメントルート、接続許可/拒否設定、ログ設定などを行うことができます。

 

やりたいこと

フォルダを2つ作りそれぞれにindex.htmlを配置します。

htmlファイル1

D:\xampp\htdocs\virtual-test1\index.html

<p>virtual-test1</p>

htmlファイル2

D:\xampp\htdocs\virtual-test2\index.html

<p>virtual-test2</p>

apacheを起動しURLのポート番号を変えることで、2つのindex.htmlがそれぞれ表示されるようにします。

 

httpd.confファイルを修正する

1.httpd.confファイルの最終行に自作の外部ファイルを読み込む記述をします。

D:\xampp\apache\conf\httpd.conf

# VirtualHostのテスト
Include conf/VirtualHost-test.conf

#はコメントです。

自作の外部ファイルは以下に配置しました。

D:\xampp\apache\conf\VirtualHost-test.conf

 

自作の外部ファイルに記述する

自作の外部ファイルに記述します。

D:\xampp\apache\conf\VirtualHost-test.conf

Listen 201
Listen 202

<VirtualHost *:201>
    DocumentRoot "D:\xampp\htdocs\virtual-test1"
    ServerName virtual-test1.com
</VirtualHost>

<VirtualHost *:202>
    DocumentRoot "D:\xampp\htdocs\virtual-test2"
    ServerName virtual-test2.com
</VirtualHost>

1行目は、ポート番号201をListenしています。
2行目は、ポート番号202をListenしています。

4行目は、ポート番号が201のとき、5行目のフォルダ配下をみにいきます。
9行目は、ポート番号が202のとき、10行目のフォルダ配下をみにいきます。

6,9行目のServerNameはhostsファイルに記述するホスト名とは異なります。ServerNameの値のみ記述してブラウザで指定しても画面は表示されません。

 

設定の確認

http://localhost:201/でアクセスすると以下のように表示されます。

http://localhost:202/でアクセスすると以下のように表示されます。

関連の記事

XAMPPのバージョンを調べる(PHP/Apach/MariaDB)

△上に戻る