40
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

40
42
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?