TL;DR

ApacheのVirtualDocumentRootlvh.meを使うと簡単。

ApacheのVirtualDocumentRootを使う

Yosemiteデフォルトを想定。

$ sudo vi /etc/apache2/extra/httpd-vhosts.conf
<virtualhost *:80>
  VirtualDocumentRoot /Users/komagata/Sites/%0
</virtualhost>
<directory /Users/komagata/Sites/*>
  Require all granted
</directory>

上記設定で~/Sitesにドメイン名の名前のディクレクトリを作れば動くようになる。(phpとvhostを有効化する設定は各自やっておいてください。)

そのディレクトリ名ですが、foo.lvh.meunk.lvh.meなどlvh.meのサブドメインにすればOK。

lvh.meを使う

VirtualDocumentRootだけだと/etc/hostsにサイトを追加するごとに追記する必要があります。hostsファイルはワイルドカードに対応してないので辛い。

# /etc/hosts
127.0.0.1    *.localhost

こんな風にかければよかったんだけどねぇ。かといってローカルにDnsmasqのようなDNSサーバーを入れるのも億劫です。

ところが127.0.0.1にlvh.meというドメインを割り当ててる傑物がいるとの情報を入手。(名前のLevi cookの略でlvhなのかな?)

% host lvh.me    
lvh.me has address 127.0.0.1
% host foo.lvh.me
foo.lvh.me has address 127.0.0.1

Levi神のお陰で適当にlvh.meのサブドメインを使えばOKになりました!

~/Sites/foo.lvh.me~/Sites/unk.lvh.meのようなディレクトリを作るだけで追加の設定なしにPHPアプリがどんどん作れます。

$ vi ~/Sites/foo.lvh.me/index.php
Hello, <?= $_SERVER['HTTP_HOST'] ?>
$ vi ~/Sites/unk.lvh.me/index.php
Hello, <?= $_SERVER['HTTP_HOST'] ?>

pow併用兄貴の場合

公式Wikiで懇切丁寧に書いてあります。

Running Pow with Apache · basecamp/pow Wiki

Comments


Option