macoblog

「ゲーム × プログラミング」で生きていく

アプリ検索ツール(β版)を公開

xamppでバーチャルホストを自由に設定する方法【2ステップでOK】

PHP プログラミング

プログラミング勉強マン

プログラミング勉強マン
「ローカル環境構築にxamppを使っているんだけど[htdocs]以外のディレクトリでサイトを管理できないのかな?パスにいちいち[localhost]って付くのは地味に不便なんだよね。」

こんなニーズに答えます。
ローカルでサイトを構築する時は[xampp]が定番ですよね、本記事では「xampp」でhtdocs以外の任意のディレクトリをバーチャルホストで指定する方法を初心者向けに解説しています。

プログラミングを始めたばかりの方、初心者の方は参考にどうぞ。

目次【本記事の内容】

任意のディレクトリをバーチャルホストにする方法

はじめに、任意のディレクトリをバーチャルホストに設定すれば[htdocs]以外のディレクトリでローカルサイトを管理することが出来ます、パスも[localhost/~]ではなく[ディレクトリ名/]になり本番環境に近づけることが出来ます。

実装にあたっての作業内容は、コピペして少し編集するだけなので難しいことは一切ありません、それでは見ていきましょう。

筆者の環境を紹介(参考にでも)

  • OSはWindows10使用
  • XAMPPのバージョンは5.6.3
    →xamppのバージョンの確認方法は下記にアクセスし表示されたメニューの左上を確認。
    http://localhost/xampp/

バーチャルホストの実装手順

今回は以下のディレクトリをバーチャルホストにしてみたいと思います。

C:/Users/ユーザー名/Documents/myhost

ドキュメントフォルダ内に作ったmyhosthttp://myhostとして使えるようにします、下記の手順を踏んで実装します。

  1. httpd-vhosts(conf)を編集する
  2. hostsファイルを編集する
  3. Apacheを起動し確認

①:httpd-vhosts(conf)を編集する

まずhttpd-vhosts(conf)を編集します、編集エディタはメモ帳でかまいません、ファイルの場所は以下になります。

C:/xampp/apache/conf/extra/httpd-vhosts

ファイルの一番下に下記をコピペして追加します。

<VirtualHost *:80>
DocumentRoot "C:\Users\ユーザー名\Documents\myhost"
ServerName myhost
</VirtualHost>

<Directory "C:\Users\ユーザー名\Documents\myhost">
AllowOverride All
Require all granted
</Directory>

上記でハイライトされている以下の部分は変更しておきましょう。

・ドキュメントルートパス(DocumentRoot)
・ディレクトリパス(Directory)
→バーチャルホストに指定したいディレクトリのパスを指定してください、今回で言えばドキュメントフォルダ内にある[myhost]のパスですね。
・サーバーネーム(ServerName)
好きに付けてもらってかまいません、迷ったらディレクトリ名にでもしておきましょう。

ファイルを保存したら次にいきます。

②:hostsファイルを編集する

最後にhostsファイルを編集します、ファイルの場所は以下になります。

C:/Windows/System32/drivers/etc/hosts

「このファイルさわっていいの?」と思うかもしれませんが問題ありません、ただ念のためバックアップはとっておきましょう、ファイルを開いたら一番下に下記をコピペして追加します。

127.0.0.1 myhost

myhostの部分を先ほど設定したServerNameにしておきましょう、これで保存すればバーチャルホストの設定は以上で終わりとなります、簡単でしたね。

・hostsファイルが編集できない場合
メモ帳(エディタ)を開く際に右クリックで「管理者として実行」を選択し立ち上げれば編集可能になります。

③:Apacheを起動し確認

Apacheを起動していた場合は再起動しましょう、でないと反映されません。

Apacheを起動し確認

myhost(http://myhost)で表示されているのがわかりますね、無事バーチャルホストにすることができました!パチパチ!!!

エラーが出て設定できない場合

Bad Requestと表示される

Apacheで確認した際に「Bad Request(404)」と表示される場合がありますが、パスに注目してくだしあ、map_test/(http://map_test)とありますが、実はホスト名にアンダーバーを使用してはいけません。

ディレクトリ名とSeverNameを同じ名前で統一しているとよく起こりがち、httpd-vhosts(conf)及びhostsを編集する際はSeverNameにアンダーバーを使わないようにしましょう。

今回の場合アンダーバーを消して設定しなおすと表示されるようになります。

アンダーバーを消して設定しなおすと表示される

ちなみにハイフンの使用はOKです、SeverNameを決める際はアンダーバーを使用しないことを意識しておきましょう。

という事で今回は以上になります。