Edited at

OSX ServerのApacheでユーザディレクトリ(/~hoge)を有効化

More than 3 years have passed since last update.

OSX ServerでServer.appをアップデートすると、Apache2のhttpd.confがサクっと上書きされて、手書きで入れてた設定が消えてしまい、どこになに書いてるかわからなくなりがち。

今回は、/~hogeでアクセスするユーザディレクトリを有効化する設定が消えてしまい難儀したので覚え書き。

やることはググればいくらでも出てくる。コメントアウトされた

LoadModule userdir_module libexec/apache2/mod_userdir.so

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

の有効化と、ユーザディレクトリ内にSitesフォルダを作成すること。

しかい設定ファイルの場所が問題。

OSXでは/etc/apache2/や/private/etc/apache2/にhttpd.confがあるけど、これを書き換えても反映されない。

正解は、

/Library/Server/Web/Config/apache2/httpd_server_app.conf

でした。また上書き前のファイルは、

/Library/Server/Web/Config/apache2.previous/

にフォルダごと残ってた。

サイトを複数作ってる場合は、その下のsites/に個別のインクルードファイルがあるので、そっちを書き換えた方がいいかも。

どこかに、Server.app上書きやOSアップデートでも上書きされず、かつデフォルトでインクルードされるファイルもあるのかも知れないですが、よくわかりません。ご存じの方がいたら教えていただきたく。

そして、上記に指定した通り、

/private/etc/apache2/extra/httpd-userdir.conf

にユーザ共通の設定がありますが、さらにここから

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

がインクルードされていて、ユーザ毎にAllowOverrideしたりするのはこっちでやるのがいいみたい。

ついでの参考にデフォルトのドキュメントルートは、

/Library/Server/Web/Data/Site/

ですね。サイト毎の親フォルダがこの下にできてるはず。

やっぱ自宅サーバー減らしたくて集約してみてるけど、やっぱLinuxの方が情報も多いし慣れてて手早いなぁ。VMWare FusionでCentOSサーバーでも立てるか、流行のDockerに手を出すべきか...