概要
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/ にアクセスできます。
↓励みになりますので「いいね」お願いします笑