MacのMountain LionでWEB共有(Apache)を設定する

2013年04月12日

 Mac OS XはもちろんベースがUNIXなので標準でWeb ServerのApacheがついてくる。「システム環境設定」の「共有」で「Web共有」を選べば、Web Serverを簡単に起動できた。ここで「起動できた」と書いたのは、実はMac OS X 10.8 Mountain Lionからは実装されなくなったためだ。
13041201.jpg これがMountain Lionの「共有」画面。Web共有が「ない!」
 実は昔のHTMLサイトデータをプレビューしようと思ったときに、ドキュメントのパスとかの関係で実サーバーに置いた方が早いなと思って開けてみたら、コレだよまったく。
 ググって調べてみるとすでにきっちりWeb共有を設定してあってもMoutain Lionにアップグレードした途端に、設定も全部消えるのだそうだ(笑)。Microsoftもかなり酷いことをやってきてるけど、Appleってそれ以上酷い。だってユーザーの環境を勝手に壊しちゃうんだから。アプリだってアッパーコンパチじゃないし。。。Macユーザーってみんなマゾなのか?
13041202.jpg Snow Leopardでの「共有」画面。ほら、ちゃんとWeb共有がある。
 さらに調べてみると、Moutain LionでApacheを起動するにはhttpd.confを設定し、ターミナルからコマンドを打たないとダメらしい。それじゃ、ただのLinuxですな。ひととおりUnixのコマンドが打てて、viなどのエディターを使えないひとは設定できなくなったわけ。というわけで、ああ、面倒くさいなと思いつつも設定してみました。ちなみに、この設定はあくまでも一例です。ちゃんと設定したいのならばApacheのマニュアルを参照して下さい。

ターミナルを起動する。
apacheの設定ファイルhttpd.confは/etc/apache2/の下にあるのでこれを編集する。
httpd.confのownerはrootになっているので編集するにはroot権限が必要。なのでsudoコマンドを併用する。ちなみに設定ファイルをいじってapacheを起動できなくなって困るので必ずバックアップを取ること。
>$ sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.yymmdd

みたいな感じ
ファイルを編集するにはvi等のテキストエディタを使う
>$ sudo vi /etc/apache2/httpd.conf

sudo使うとpasswordを要求されるので入力してファイルを開く
DocumentRoot "/Library/WebServer/Documents"となっているのでこれを#でコメントアウトし、
#DocumentRoot "/Library/WebServer/Documents"
DocumentRoot "/Users/Username/Sites/public_html"

とした。ちなみに「Username」はログインネームのこと。
さらにhttpd.conf内に
<Directory "/Users/Username/Sites/public_html">
 Options Indexes FollowSymLinks MultiViews IncludesNoExec
 AllowOverride None
 Order allow,deny
 Allow from all
</Directory>

を追加してhtmlドキュメントルート内へのアクセス権を設定する。
ちなみに2行目のIncludesNoExecはSSIの許可を示している。
SSIを許可するためには
AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html

のコメントアウトを外す。なおかつここでは.html拡張子での実行も許可している。
httpd.confについてはここが詳しい。
apacheの起動コマンドはapachectlだが、これはroot権限でないと使用できないのでこれもsudoを併用する。
>$ sudo apachectl restart

これでapacheを再起動する。httpd.confをいじったら再起動が必要。
これで「Username」の下の「サイト」ディレクトリに「public_html」というディレクトリを作り、index.htmlを設置すれば、http://localhost/で閲覧できるはず。
僕の場合は403 Forbiddenエラーで閲覧不能だったので調べたら、 /Users/Usernameのパーミッションが700となっていた。これを705に変更したら閲覧できた。
>$ sudo chmod 705 /Users/Username

ちなみにファイルのパーミッションは
>$ ls -la

で調べることはできるけど、このへんのUnixのコマンドも知らない人はいじらないほうが得策。それにしても面倒くさいことになったもんだ。



« Mac OS X 10.8 Mountain Lionでe-Tax確定申告(VirtualBox使用) | メイン | ボンゴレビアンコ »