ローカル環境で複数ドメインを使う方法

ローカル環境に複数ドメインでテストしたい場合、以下の作業を行います。

xamppを使います

example.comでxampp\htdocs\exampleに、
foo.barにアクセスするとxampp\htdocs\fooを表示したいとします。

まずはhostsファイルを書き換えます。
hostsファイルの場所はwindows7だと
C:\Windows\System32\drivers\etc\hosts
にあります。OSが変わると場所が変わる可能性があります。
hostsファイルが無い場合は作成しても構いません。
また、編集は管理者権限でないと編集できないと思います。
メモ帳等を右クリック→管理者権限で実行、で管理者権限で実行できます。

hostsファイルには以下の二行を追加します。内容はexample.comを127.0.0.1に変換、foo.barを127.0.0.2に変換といった感じです。

127.0.0.1 example.com
127.0.0.2 foo.bar

保存したら、OSを再起動します。

次にVirtualHostの設定を行います。
\xampp\apache\conf\extra\httpd-vhosts.conf
に、以下を追加してください。


DocumentRoot “C:/xampp/htdocs/example”


DocumentRoot “C:/xampp/htdocs/foo”

保存したら、apatchを再起動します。

これで
example.comでxampp\htdocs\exampleに、
foo.barにアクセスするとxampp\htdocs\fooを表示出来ると思います。

もとに戻す場合は、hostsをコメントアウトすれば良いです。
# 127.0.0.1 example.com
# 127.0.0.2 foo.bar
VirtualHostの設定はほったらかしにしても大丈夫です。

他にもvirtualhostのdocumentrootを
DocumentRoot “C:/xampp/htdocs”
とすればhtdocs直下のindex.phpなどにアクセスできたりします

また、httpd.confにListen 8080と付け足して

のようにしてポートで分ける方法もあるのですが、ポート番号をつけるのが面倒だったのでこの方法を思いつきました。

xampp、apacheがアンインストールできない

xamppを再インストールする時や、開発環境の移行時に厄介なのがapache。

xamppをアンインストールしただけではapache、mysqlがサービスに残るようです、というか残っています。

これを消すには

コマンドプロンプトを必ず「管理者権限で」実行。

そして

sc.exe delete mysql

sc.exe delete Apache2.4

の2つを打ちこめば良い。

DeleteService SUCCESSと出れば成功。

Apache2.4の2.4の部分は

コントロールパネルで「サービス」で検索

管理ツールを起動して、Apacheのサービス名になります。

sc.exe delete Apache では消えてくれないので注意。