2015年1月23日金曜日

Mac Yosemiteでウェブ公開をする(apache2を動かす)

Lionから「設定」に「ウェブ共有」がなくなったそうです。まあ、昔からあまりに簡単にhttpdを起動できるので危ないな〜とは思ってましたが、いざなくなると困ります。Yosemiteではapacheを手動スタートしないといけません。(Lionsは試してなくて、Mavericksは使いましたが、そのときは試してませんでした。いきなりYosemiteに来たんで、気づかなかった)

$ sudo apachectl start

(passwdが聞かれます)

これで、http://localhost/をブラウザで開けるようになります。
この時のhomeは、/Library/WebServer/Documents/になります。(システムルートです)ただこれでは作業上面倒くさいので、従来の自分のhomeのSitesをホームにします。(この後設定ファイルを色々アンコメントしますが、デフォルトでそうなのか、あるいは古いバージョンからYosemiteにUpしたせいなのか正確なところはわかりません。自分はUpしてますので、設定しようと思ったファイルがすでにあるものの内容に問題があり、以下の通りに修正したので所々これでいいのか悩みました)

まず/etc/apache2/httpd.confでmod_userdirを有効にします。

$ sudo vi /etc/apache2/httpd.conf

mod_userdir.soをロードする行がコメントアウトされているので、アンコメントする。
(166行目付近の以下をアンコメントする。)

LoadModule userdir_module libexec/apache2/mod_userdir.so

# User home directories
Include /private/etc/apache2/extra/httpd-userdir.conf

(他のHPみると、phpのモジュールとかもコメントアウトされてしまうとか。そのあたりは必要に応じてということになりますが、基本安全側にコメントされてしまうようです。)

次にユーザーディレクトリを作成します。(これは昔のバージョンのものが自分は残っていました)

$ mkdir ~/Sites

ルート権限で、/etc/apache2/users/ユーザ名.confというファイルを作る。(書式がYosemiteのapache2.4になってから変わってます。以前は2.2だったそうで、サイトによって内容が若干変わってたりします。ただ少なくとも昔のままではダメなことは確かです。)

<Directory “/Users/ユーザ名/Sites/”>
DirectoryIndex index.html index.php
AllowOverride All
Options all
Require all granted
</Directory>

以下のファイルを修正し、アンコメントする。
$ sudo vi /etc/apache2/extra/httpd-userdir.conf

Include /private/etc/apache2/users/*.conf

これでapache2を再スタートすれば、http://localhost/~ユーザ名 で「ウェブ共有」できるようになります。(いくつかのHPでは、ユーザ名の頭の「~」が記されなくてうまくいかず、Yosemiteから変わったんだろうかと悩みましたが結局ここは昔のままのURLです。)
一度起動すれば、以降はマシンを再起動しても自動的に起動してくれます。


なんで急に「ウェブ公開」なんてやろうと思ったかというと、couchDBのUIをhtmlで作ってみたくなり、jQueryとかいじり始めたらどうもうまくいかず、基本のurlでのアクセスから試してみないとわからない、ということになったんです。ただ、ここからまた別の苦闘が始まるのですが、それはまた今度に。

0 件のコメント:

コメントを投稿