XAMPPで複数のhtdocsを複数使いたい

2016/05/01

やりたいこと

一連のサイトを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になったので「良し」とする。

流れ

流れは下記のような感じ。

  1. 準備
  2. apacheのコンフィグ編集
  3. hostsファイルの編集
  4. 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

NameVirtualHost *:80
にする。

※ひょっとしたら「#」が2つあり「##NameVirtualHost *:80」となっているかもしれない。そのときは「##」を削除。

PATHの指定

今回は「localhostはxampp/htdocs」「recatnapはxampp/htdocs/recatnap」の2つを設定する。

「apache/conf/extra/httpd-vhosts.conf」の最期に下記追加。

<virtualhost *:80>
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 localhost
127.0.0.1 recatnap

apacheの再起動

XAMPPのAPACHEを再起動して、ブラウザから「http://recatnap/」でアクセス。
・・・ダメなら何か設定が間違っているはず。

wikiにまとめ中。
XAMPPでlocalhost以外のドメインでアクセス

新着(ニュース関連以外)

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい