概要
やりたいこと
ローカルマシンで/var/www/html
あたりに「hoge」というディレクトリを作ると「http://hoge.local/
」的なURLでアクセスできるようにしたい。
※Apache使い向け
どのような方法を使うか
普通にローカル環境を作るとしたら、
- Apacheにバーチャルホストの設定を追加
- hostsファイルにドメインを追加
という感じの作業をすると思われる。
この設定作業をいちいちしたくない。
1に関しては、VirtualDocumentRootを使えば簡単で、
http://*.local/
が/var/www/html/*
を指すようにワイルドカード指定できる。
問題は2で、hostsファイルには以下のようなワイルドカードでの指定はできない。
127.0.0.1 *.local
なので、今回はhostsファイルを使わずにループバックドメインというものを使って実装する。
世の中で使われているドメイン名は、「google.comならgoogleのサーバーのIPアドレス」といったように、アクセス先のサーバーのIPアドレスが指定されている。
しかし中には、127.0.0.1(=ローカルを意味する)を指定しているドメイン名が存在しており、これがループバックドメインと呼ばれる。
有名なものに「lvh.me」というドメインがあるので、今回はこれを使う。
(lvhはLocal Virtual Hostの略かな?)
実装
Apacheの設定
ApacheのVirtualDocumentRootを使い、http://*.lvh.me/
が/var/www/html/*
を指すように設定する。
バーチャルホストの設定ファイルに以下を追記する。
(ファイルの場所は環境によって異なるので省略)
<VirtualHost *:80>
ServerName lvh.me
ServerAlias *.lvh.me
VirtualDocumentRoot "/var/www/html/%1"
</VirtualHost>
※VirtualDocumentRootはmod_vhost_aliasというApacheモジュールを使うので、もし無効になっている場合は有効にしておく。
Apacheを再起動する。
確認
/var/www/html
にhogeディレクトリを作成し、中にindex.html
とかを適当に追加する。
ブラウザでhttp://hoge.lvh.me/
へアクセスしてindex.htmlの中身が表示されることを確認する。