崖っぷちの男

たぶん技術っぽいネタ。ブログ名が決められない

Mac OS X 10.6 で VirtualHost

※2011/04/09に修正しました。


そういえばうちの Mac OS X 10.6 でバーチャルホスト使ったことないな
と思ったので、今日もありきたりな話ですがまた備忘録ということで。。


ここでは http://hoge.localhost:8080/
ハードディスクの /hoge/index.php
にアクセスできるようにする、という例にします。

hosts ファイルにバーチャルホストを追加

/etc/hosts に「hoge.localhost」を追加します。
管理者権限がないとだめなんで vim あたりで変更します。

sudo vim /etc/hosts


こんな感じで hoge.localhost を追加しときます。
127.0.0.1 と hoge.localhost の間ってタブなのかな?スペースなのかな?
とかこういうのに慣れてないので気になってしまうのですが、どっちでもいいんですね。

127.0.0.1 localhost
127.0.0.1 hoge.localhost

httpd.conf で httpd-vhosts.conf も読み込むように変更

httpd.conf 系の編集ですが、とりあえず編集が終わるごとに以下で
設定に変なところがないかチェックした方がよさげです。
このあとで Apache を再起動しますが、設定でミスってても
なぜかエラーメッセージなどが表示されないためです。

/usr/sbin/apachectl -t


まず /etc/apache2/httpd.conf については下の方で httpd-vhosts.conf の Include 文がコメントアウトされているので元に戻しておきます。

Include /private/etc/apache2/extra/httpd-vhosts.conf


次に /etc/apache2/extra/httpd-vhosts.conf に以下を追加します。
元々8080のポートを使っていたのでここでも8080にしてますが、
普通は80のままでいいはずです。
細かい設定はここから色々追加、という感じです。


※ ホスト名でバーチャルホストを切り替える場合は ServerName で区別するってのを後で知ったので以下修正しました。ごめんなさい。。

NameVirtualHost *:8080

<VirtualHost *:8080>
    DocumentRoot "/hoge"
    ServerName hoge.localhost
</VirtualHost>

<Directory "/hoge">
    Order deny,allow
    Deny from All
    Allow from localhost 127.0.0.1
</Directory>

再起動。おつかれさまでした

あとは「システム環境設定」>「共有」>「Web 共有」か
以下のコマンドで Apache を再起動。

 sudo /usr/sbin/apachectl restart


http://hoge.localhost:8080/ にアクセスすれば、/hoge/index.php の結果が
表示されるはずです。


ううう。日をまたいでしまった。
とりあえずこんな感じでプロジェクトごとにバーチャルホストを作っとけば
家でも快適に開発できそうです。