macosxのapache2でサブドメイン環境を作る
web開発のテスト環境はmacのapache2使ってみることにしました。
- メリット
- ローカルで動かせるので、スタンドアロンな状況でも開発できる。
- レスポンスが速い(たぶん)
- 簡単に構築できる(と思った)
- デメリット
apacheの起動
apacheの起動は簡単。GUIでシステム環境設定 -> 共有 -> web共有 を有効にするだけ。
http://192.168.0.5/ とか http://192.168.0.5/~shikajiro/ http://localhost でアクセスできる。アクセスするURLも表示されてるので分かりやすい。
サブドメインの運用
http://192.168.0.5/~shikajiro/ とかだと、パスの設定が本番と異なってしまうので、サブドメイン運用がしたくなった。http://test1.localhost とか http://test2.localhost とか。
hostsで名前解決
/etc/hosts を編集。
127.0.0.1 test1.localhost 127.0.0.1 test2.localhost
とか書く。
VirtualHostでの振り分け
virtualhostの設定。ここに詰まったでの僕なりの解決策を書く。
ポイント:公開するディレクトリはユーザーのSitesディレクトリ内に作る!
DocumentRootを/var/www/htmlとかにした場合、403エラーになってしまう。アクセス権限をきちんと書けば動くかもしれないが、僕はアクセス権限がよくわからない!なるべく簡単なやり方を模索した結果、/User/username/Sites/以下ならエラーがでないことが分かったので、そこにDocumentRootを設定することにした。
以下、usernameをshikajiroと仮定。
htmlを置く公開ディレクトリの作成
mkdir /Users/shikajiro/Sites/test1
/etc/apache2/extra/httpd-vhosts.confの編集。サブドメインを追加していく。DocumentRootにhtmlがあるディレクトリを指定する。
<VirtualHost *:80> ServerName test1.localhost DocumentRoot "/Users/shikajiro/Sites/test1" </VirtualHost>
/etc/apache2/httpd.conf httpd-vhosts.confのIncludeのコメントアウトを外して、httpd-vhosts.confが使用されるようにする。
# Virtual hosts
-#Include /private/etc/apache2/extra/httpd-vhosts.conf
+Include /private/etc/apache2/extra/httpd-vhosts.conf
再起動は上述したようにシステム環境設定からできますが、コマンドラインからもできます。
httpd -k restart
http://test1.localhost でアクセスできるはず!