TL;DR
ApacheのVirtualDocumentRoot
とlvh.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.me
やunk.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で懇切丁寧に書いてあります。
http://qiita.com/semind/items/18322effee888306432f
おお、nginxだったら超簡単なんですね!
今、レガシー関連でまずはapache + mod_php(古めのバージョン)でやってますが、本番も開発環境もnginx + php-fpmに徐々にかえていきたいです!