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

macOS Mojave の Apache で Sites ディレクトリを使って localhost を特定アカウントで利用する方法

概要

macOS Mojave (10.14) にアップデートすると、それまで設定していたApacheの設定が吹き飛んだ、かつ、下記の参考文献通り設定ファイルを復活させても期待通りに動作しなかった。なお、それまで設定していたのは、ユーザディレクトリ配下の Sites ディレクトリを使って localhost を特定アカウントで利用する方法です。

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

修正手順

ほぼ参考文献にある、Mojave 以前と同じ手順ですが、Mojave ではユーザ設定ファイル内で DocumentRoot を明示する必要があります。

ユーザーディレクトリを有効化

$ sudo vi /etc/apache2/httpd.conf

以下のコメントアウトを外します。

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

あと、個人的にPHPを使うのでPHPも有効化

LoadModule php7_module libexec/apache2/libphp7.so

ユーザ設定ファイルの読み込み設定

$ sudo vi /etc/apache2/extra/httpd-userdir.conf
UserDir Sites

Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
       RegisterUserSite customized-users
</IfModule>

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

{username}$whoami で確認してください。

$ sudo vim /etc/apache2/users/{username}.conf

Mojave 以前は1行目のDocumentRootの記述がなくてもいけていましたが、これを追記せねば正しく動作しませんでした。

DocumentRoot "/Users/{username}/Sites/"
<Directory "/Users/{username}/Sites/">
    AllowOverride All
    Options Indexes FollowSymLinks Multiviews
    Require all granted
</Directory>

Apache に適用

$ sudo apachectl -t
$ sudo apachectl restart

初めてやる人はこれも忘れずに。

$ mkdir ~/Sites

以上により、 http://localhost で /Users/{username}/Sites/ にアクセスできます。

↓励みになりますので「いいね」お願いします笑

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした