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に手を出すべきか...