Help us understand the problem. What is going on with this article?

MacOS X の Yosemite (10.10) で Sites ディレクトリを使って localhost をアカウント別に利用する方法

More than 5 years have passed since last update.

Yosemiteの場合はMavericksのときと状況が少し変わっています。
Apacheのバージョンも違い、設定内容も幾つか違うのでご注意を。

$ apachectl -v
Server version: Apache/2.4.9 (Unix)
Server built:   Sep  9 2014 14:48:20

以前は2.2系だったような。

なおMavericksの場合はこちら↓
MacOS X の Mavericks (10.9) で Sites ディレクトリを使って localhost をアカウント別に利用する方法

MacOSはMavericksやYosemiteだとWeb共有が環境設定に表示されなくなったり、 Sites ディレクトリがなくなったりします。

Screen Shot 2014-04-24 at 12.07.35.png

localhostを使って開発したいときは、とりあえず、ターミナルから apache を立ち上げたら大丈夫です。

$ sudo apachectl start

問題点

Apacheを起動すると、http://localhost/をブラウザで開けるようになる。
http://localhost/ で閲覧できる中身は /Library/WebServer/Documents/ に配置されています。
でも、このディレクトリのownerはrootになっているので、なにかと使い勝手が悪い。
複数ユーザが一つのPCを使っているときには、confの影響が他のユーザに及ぶのも好ましくない。
できれば ユーザーディレクトリのSitesを使いたい。

アカウント別に設定する

個々のユーザー毎にSitesディレクトリを作って、設定ファイルをを作成し、apacheに反映させて、 http://localhost/~USERNAME/ で、~/Sites/ 以下のファイルを閲覧できるようにします。

ユーザーディレクトリを有効にする

/etc/apache2/httpd.conf の以下の行のコメントアウトを外します。先頭に#が入っていると思うので、その#を削除します。

$ sudo vi /etc/apache2/httpd.conf
# 以下の4行のコメントアウトを外します。すでに外れているものもあるかもしれません。
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so

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

ユーザーごとの設定ファイルを読み込む様に設定

Includeの行のコメントアウトを外します。

$ sudo vi /etc/apache2/extra/httpd-userdir.conf
---
Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
       RegisterUserSite customized-users
</IfModule>

ユーザー名の確認

$ whoami

このコマンドで表示されるはずです。

ユーザーごとの設定ファイルを作成

Order allow,deny
Allow from all
 ↓ ↓ ↓
Require all granted
$ sudo vim /etc/apache2/users/username.conf
<Directory "/Users/username/Sites/">
    AllowOverride All
    Options Indexes FollowSymLinks Multiviews
    Require all granted
</Directory>

ユーザー毎のSitesディレクトリを作成してapacheを再起動

$ mkdir ~/Sites
$ sudo apachectl configtest
$ sudo apachectl restart

この流れで大丈夫だと思います。
以下にアクセスしたら、表示されるはず。

Screen Shot 2014-04-24 at 12.06.36.png

http://localhost/~username

あとは、Sites/ 以下にファイルを置いていって、そのURLにアクセスすれば見れるはずです。

References

colorrabbit
creator.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away