ラボ > サーバ:Xampp

Xamppでサブドメインを使う(hosts、httpd-vhosts.conf):簡易版

Xamppというよりapacheの設定

作成日: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。

関連

Xamppでサブドメインを使う(hosts、httpd-vhosts.conf)