webアプリをローカルで開発する際、プロジェクト毎に別ドメインたてたいものです。
で、mac(OSX10.7.5)のローカルにサブドメインたてようとしたのですが、centOSと少し勝手が違ったのでメモ
ドメイン・サブドメイン名
今回は、例として、localhostのサブドメインにsubdomain.localhost設定するという想定です。localhostへのアクセス環境はすでに設定済みとします。
hosts設定
まずは、/private/etc/hosts に以下を追記
127.0.0.1 subdomain.localhost
httpd.conf設定
/etc/apache2/httpd.conf を編集
NameVirtualHost *:80
<VirtualHost *:80>
ServerName abc.localhost
DocumentRoot "/Users/yourname/project/abc/html"
</VirtualHost>
<VirtualHost *:80>
ServerName abc.localhost
DocumentRoot "/Users/yourname/project/abc/html"
</VirtualHost>
subdmain.localhost のDocumentRootを /Users/yourname/project/abc/html に設定しています。
yourname部分はアカウント名に読み替えてください。
apache再起動で無事設定完了!・・・と思いきや
apache再起動して
sudo apatchectl restart
http://abc.localhost/にれっつアクセス。すると
Forbidden
You don't have permission to access / on this server.
ぬぬ!permissionが無いと起こられました。http://localhost/ は問題なく動いてるのに何で?
/var/log/apache2/error_log を見てみる
[Wed Dec 26 16:19:20 2012] [error] [client 127.0.0.1] client denied by server configuration: /Users/yourname/project/abc/html/
サーバー設定で拒否してますなー。Directoryディレクティブで許可してるディレクトリのはずなのに、、、(だからhttp://localhost/が動いてるはず)
Directoryディレクティブで許可指定しみる
/etc/apache2/httpd.conf に追記
<Directory /Users/yourname/Documents/PJ/nanitabeyo/src/html>
Order allow,deny
Allow from all
</Directory>
Order allow,deny
Allow from all
</Directory>
これでapache再起動したら、動きました!