YosemiteのApache設定

OS X 10.10 Yosemite DP6 (Build 14A329F) を上書きでインストールしてユーザディレクトリのサイトフォルダ内のウェブデータを表示しようとした際に問題に直面したので記録します。

sudo vi /etc/apache2/httpd.conf で次の3つのモジュールと設定ファイルを読み込むようにコメントアウト。

  • LoadModule authz_core_module libexec/apache2/mod_authz_core.so
  • LoadModule authz_host_module libexec/apache2/mod_authz_host.so
  • LoadModule userdir_module libexec/apache2/mod_userdir.so
  • Include /private/etc/apache2/extra/httpd-userdir.conf

次に sudo vi /etc/apache2/extra/httpd-userdir.conf で全てのユーザディレクトリの設定ファイルを読み込むようにコメントアウト。

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

最後に sudo apachectl start でウェブサーバを起動すると、ドキュメントルートにあるウェブデータは表示されるものの、各ユーザのサイトディレクトリのデータについてはブラウザが 403 Forbidden を返してきました。

ここで注意する必要があるのは、Yosemite では Apache のバージョンが 2.4.9 になっているということで、/etc/apache2/users/hkitago.conf のアクセス許可の書き方に変更があるということです。

以下の参考サイトにもありますが、
Order allow,deny
Allow from all


Require all granted
とすることで、無事解決しました。

P.S. 従来の書き方との衝突を防ぐために mod_access_compat モジュールを読まないように httpd.conf でコメントアウトしておく方が良いよと言う意見もありましたが、やってみると接続ができなくなった(system.log を見ると (org.apache.httpd): Service only ran for 0 seconds. と Apache 自体起動してない)ので、一先ずこの問題は放置して設定を戻しました。

参考:

投稿者: hkitago

個人事業主でウェブと iOS, Android アプリの開発者で一児の父親。JavaScript, ActionScript, AppleScript, PHP, SQL, ObjC, Swift, Java の読書実行試験運用管理を生業とし、Bind, Postfix, Apache を MacOS で使い、エディタは Vi, mi, Kod, Smultron, TextWrangler を経て Coda, Xcode, Android Studio といった IDE と CotEditor を重用しています。