XAMPPで複数のhtdocsを複数使いたい
やりたいこと
一連のサイトをXAMPPにいれて動かしたいってのがあった。
▼今まで
- 「http://localhost/hoge1」でアクセスしたら「xampp/htdocs/hoge1」を表示
- 「http://localhost/hoge2」でアクセスしたら「xampp/htdocs/hoge2」を表示
今回、「フォルダ指定する記述が絶対パス」になっているのが面倒。
何かにアクセスするときに「URL+PATH」と「PATH」っていう2種類の使われ方がされている。
・・・相対パスに書き換えたいけど、ドコで何が起きるか不明なので出きれば避けたいってのがあった。
じゃぁ「「htdocs」が2つあれば幸せになれるハズ!」って感じで調べることにした。
▼希望
- 「http://localhost」でアクセスしたら「xampp/htdocs」を表示
- 「http://hoge」でアクセスしたら「xampp/htdocs2」を表示
▼結果
- 「http://localhost」でアクセスしたら「xampp/htdocs」を表示
- 「http://hoge」でアクセスしたら「xampp/htdocs/hoge」を表示
htdocsを2つに出来なかったけど、まぁフォルダ指定する記述が絶対パスのままでもOKになったので「良し」とする。
流れ
流れは下記のような感じ。
- 準備
- apacheのコンフィグ編集
- hostsファイルの編集
- apacheの再起動
準備
準備といっても「何というドメインでアクセスしたい?」「ドコのファイルを開く?」という設定を考える。
通常は、「localhostというドメインでアクセス」して「xampp/htdocs」の中のファイルを開く。
今回は2つのドメインで対応したいので下記のようにする
- 「localhost」というドメインでアクセスして「xampp/htdocs」の中のファイルを開く
- 「recatnap」というドメインでアクセスして「xampp/htdocs/recatnap」の中のファイルを開く
apacheのコンフィグ編集
「apache/conf/httpd.conf」か「apache/conf/extra/httpd-vhosts.conf」を開いて「NameVirtualHost *:80」を探す。
人によっては「apache/conf/httpd.conf」にあったりするが、私の場合は「apache/conf/extra/httpd-vhosts.conf」にあった。
確認したら、ひとまずファイルを保存せずに閉じておく。
次に何かあったとき用のバックアップとして、XAMPPの「apache/conf/extra/httpd-vhosts.conf」を複製しておく。
「apache/conf/extra/httpd-vhosts.conf」を修正していく。
NameVirtualHostのコメント解除
「apache/conf/extra/httpd-vhosts.conf」の中にあるNameVirtualHostを探してコメント解除。
を
NameVirtualHost *:80
にする。
※ひょっとしたら「#」が2つあり「##NameVirtualHost *:80」となっているかもしれない。そのときは「##」を削除。
PATHの指定
今回は「localhostはxampp/htdocs」「recatnapはxampp/htdocs/recatnap」の2つを設定する。
「apache/conf/extra/httpd-vhosts.conf」の最期に下記追加。
DocumentRoot “C:/xampp/htdocs”
ServerName localhost
</virtualhost>
<virtualhost *:80>
DocumentRoot “C:/xampp/htdocs/recatnap”
ServerName recatnap
</virtualhost>
※xamppがcドライブ直下にある場合。そうじゃないなら、XAMPPのPATHに合わせる。
hostsファイルの編集
次に何かあったとき用のバックアップとして、「C:\Windows\System32\drivers\etc\hosts」を複製しておく。
「C:\Windows\System32\drivers\etc\hosts」に下記追加。
127.0.0.1 recatnap
apacheの再起動
XAMPPのAPACHEを再起動して、ブラウザから「http://recatnap/」でアクセス。
・・・ダメなら何か設定が間違っているはず。
wikiにまとめ中。
XAMPPでlocalhost以外のドメインでアクセス