LoginSignup
17
18

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-09-25

概要

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/ にアクセスできます。

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

17
18
4

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
17
18