一つApacheサーバは複数サイトを公開できる設定について、紹介します。
複数のサイトをApacheのDocumentRootにある別々のディレクトリに関連付けして設定する。
ドメインでローカルサーバにアクセス
Windowsのhostsファイルを修正し、複数のローカルサイトのドメインをローカルウェブサーバーに関連付ける。ローカルPCの「C:\Windows\System32\drivers\etc」にあるファイル「hosts」に以下の内容を追加する。
ファイル<hosts>:
127.0.0.1 www.site1.com
127.0.0.1 www.site2.com
127.0.0.1 www.site1.com
127.0.0.1 www.site2.com
Apacheの設定変更
apacheの設定ファイル「httpd.conf」をテキストエディタで開く。
テキストエディタで開き、キー「httpd-vhosts」を検索すると、
「#Include conf/extra/httpd-vhosts.conf」がヒントできる。先頭の(#)を削除する。
仮想ホスト設定(httpd-vhosts.conf)でそれぞれのドメインをディレクトリに関連する。
httpd-vhosts.confファイルの設定内容:
<VirtualHost *:80>
ServerAdmin webmaster@site1.com
ServerName www.site1.com
DocumentRoot “${SRVROOT}/htdocs/site1”
<Directory “${SRVROOT}/htdocs/site1”>
Options
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
ErrorLog “logs/site1-error.log”
CustomLog “logs/site1-access.log” common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@site2.com
ServerName www.site2.com
DocumentRoot “${SRVROOT}/htdocs/site2”
<Directory “${SRVROOT}/htdocs/site2”>
Options
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
ErrorLog “logs/site2-error.log”
CustomLog “logs/site2-access.log” common
</VirtualHost>
ServerAdmin webmaster@site1.com
ServerName www.site1.com
DocumentRoot “${SRVROOT}/htdocs/site1”
<Directory “${SRVROOT}/htdocs/site1”>
Options
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
ErrorLog “logs/site1-error.log”
CustomLog “logs/site1-access.log” common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@site2.com
ServerName www.site2.com
DocumentRoot “${SRVROOT}/htdocs/site2”
<Directory “${SRVROOT}/htdocs/site2”>
Options
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
ErrorLog “logs/site2-error.log”
CustomLog “logs/site2-access.log” common
</VirtualHost>
変更前:
変更後:
Apacheの再起動
アクセス確認
apacheのドキュメントフォルダにサイトのフォルダを作成し、以下の内容で作成する。
ブラウザで「www.site1.com」を入力し、以下の画面を表示します。
ブラウザで「www.site2.com」を入力し、以下の画面を表示します。