作成日:2021-02-03, 更新日:2021-02-04
経緯
「Xamppでサブドメインを使う(hosts、httpd-vhosts.conf)」だと毎回hosts、httpd-vhosts.confの2ファイルを修正する必要があるので面倒。
流れ
▼条件
・URLは「http://〇〇〇.localhost」のような感じ
・ファイルは「D:/sites/〇〇〇/htdocs/」のようなトコにおく
1.hostsファイルの確認
2.httpd.confの設定・確認
3.httpd-vhosts.confの設定・確認
1.hostsファイルの確認
▼これだけにしておく
127.0.0.1 localhost
※他に色々とIPとドメインの紐づけがあるとダメかもしれない
2.httpd.confの設定・確認
ファイルはxamppだと「xampp\apache\conf」の下にあると思う
▼下記の2か所、コメント解除
LoadModule vhost_alias_module modules/mod_vhost_alias.so ~中略~ Include "conf/extra/httpd-vhosts.conf"
3.httpd-vhosts.confの設定・確認
ファイルはxamppだと「xampp\apache\conf\extra」の下にあると思う
<VirtualHost *:80> ServerName localhost DocumentRoot "D:/xampp/htdocs" </VirtualHost> <VirtualHost *:80> ServerAlias *.localhost VirtualDocumentRoot "D:/sites/%1/htdocs/" <Directory "D:/sites/*/htdocs/"> order deny,allow allow from ALL Options Indexes FollowSymLinks ExecCGI IncludesNoExec </Directory> </VirtualHost>
めも
個人的にHTMLファイルを「htdocs」に決め打ちにするのは望ましくなかったりする
▼条件
・各サイトを「D:/sites/〇〇〇/」にする
・HTMLたちは「D:/sites/〇〇〇/XXX」におく
・URLは「http://〇〇〇.XXX.localhost」のような感じ
▼こんな感じの構成にしたい
■ D:/sites/ ├ サイトA │ ├ htdocs/ │ └ 「git関連」「.htpasswd」やメモ書きなど ├ サイトB │ ├ public_html/ │ └ 「git関連」「.htpasswd」やメモ書きなど ├ サイトC │ ├ html/ │ └ 「git関連」「.htpasswd」やメモ書きなど
※「htdocs」や「public_html」を共通にすることが出来れば良いんだけど・・・
▼「httpd-vhosts.conf」の設定
<VirtualHost *:80> ServerName localhost DocumentRoot "D:/xampp/htdocs" </VirtualHost> <VirtualHost *:80> ServerAlias *.*.localhost VirtualDocumentRoot "D:/sites/%1/%2/" <Directory "D:/sites/*/*/"> order deny,allow allow from ALL Options Indexes FollowSymLinks ExecCGI IncludesNoExec </Directory> </VirtualHost>
VirtualDocumentRootの「%1」などについて
▼「hoge.example.com」の場合
%0 | 全体 | hoge.example.com |
---|---|---|
%1 | 一つ目 | hoge |
%2 | 二つ目 | example |
%3 | 三つ目 | com |
%2+ | 二つ目以降 | example.com |
%-1 | 最後のみ | com |
%-2 | 後ろから二つ目 | example |
%-2+ | 後ろから二つ目以降 | example.com |
ログファイルについて
今回のような「1つのVirtualHostの指定で複数のサイトが使えるようにする」とした場合、ログファイルは共通になる
※1つのVirtualHostの指定につき一つのサイトだとそれぞれログのPATHを指定すればOK。