Lionより前までは、システム設定画面から「ウェブ共有」をオンにするだけでApacheを有効にすることができていたが、Lion以降はターミナルを使って手動でApacheを設定/起動しなければいけなくなった。Yosemiteにおける設定方法をまとめておく。
Apacheの起動
ターミナルからapachectlコマンドを使って起動する。
sudo apachectl start
Apacheを起動すると、http://localhost/をブラウザで開けるようになる。
http://localhost/の中身は/Library/WebServer/Documents/に配置されている(システムルート)。ただし、このディレクトリのownerはrootになっているので、なにかと使い勝手が悪い。同時に複数ユーザがマシンを使っているような場合にconfの影響が他のユーザに及ぶのも好ましくない。
そこで、システムルートディレクトリではなくユーザのディレクトリを使って作業したほうが良い。
ユーザディレクトリの有効化
ユーザディレクトリを有効にするには、まずhttpd.confでmod_userdirを有効にする。
sudo vi /etc/apache2/httpd.conf
mod_userdir.soをロードする行がコメントアウトされているので、アンコメントする(先頭の#を取り除く)。
LoadModule userdir_module libexec/apache2/mod_userdir.so
同時に、userdir用の設定ファイルをインクルードするための行もアンコメントする。
# User home directories Include /private/etc/apache2/extra/httpd-userdir.conf
ユーザディレクトリの作成
mkdir ~/Sites
ホームディレクトリにSitesというディレクトリを作る。このディレクトリの中にindex.htmlなどを作っていく。
最後に、/etc/apache2/users/以下にユーザ単位の設定ファイルを作る。
sudo vi /etc/apache2/users/ユーザ名.conf
ルート権限で、/etc/apache2/users/ユーザ名.conf というファイルを作る。
<Directory "/Users/ユーザ名/Sites/"> AllowOverride All Options Indexes MultiViews Options +FollowSymLinks Require all granted </Directory>
最後にApacheを再起動して設定を反映させれば、http://localhost/~ユーザ名/で~/Sites以下のファイルにアクセスできる。
sudo apachectl restart
参考になりました。ありがとうございます。
1点、/private/etc/apache2/extra/httpd-userdir.conf ファイルの
Include /private/etc/apache2/users/*.conf のコメントを外す作業が抜けているようです。
OS X 10.10 YosemiteでApache(ウェブ共有/サイト)を使う方法の通りにしたんですが、
http://localhost/~ユーザ名/にアクセスすると
Forbidden
You don’t have permission to access /~ユーザ名/ on this server.
となるのですがどうしたらいいでしょうか。
>Forbidden
ユーザーごとの設定ファイルを読み込む様に設定
Includeの行のコメントアウトを外します。
$ sudo vi /etc/apache2/extra/httpd-userdir.conf
—
Include /private/etc/apache2/users/*.conf
RegisterUserSite customized-users
Server.app をインストールすると、
/etc/apache2/httpd.conf
は無効になり、
/Library/Server/web/config/apache2/httpd_server_app.conf
が使われるようです。
以下はそれを記述したコメント文です。
新しいファイルhttpd_server_app.confの中に書かれているので、知らなければどうしようもないですね。
# When Server App is installed, this file is used instead of /etc/apache2/httpd.conf
# At Server.app promotion time this file is copied to
# /Library/Server/Web/Config/apache2/httpd_server_app.conf and Apache’s launchd.plist is
# modified to use it as the main config file.