High Sierra でもやはりWebサーバを起動するUIはありません*1。Apache 2.4 がインストールされているのでこれを起動し、各ユーザが .htaccess で動作を変更できるよう設定します。
Apacheの起動
Mavericks時代は launchctl でApacheを常時起動していたのですが、その設定は「移行アシスタント」で引き継がれていないようです。とりあえず以下のコマンドでApacheを起動してみます。
$ sudo apachectl start
http://localhost/ にアクセスすると、例の「It works!」が表示されました。起動は成功。Macを再起動してみるとApacheも再起動していました。あらためて launchctl で設定する必要はなさそうです。*2
Apacheの設定
Apacheの設定ファイルはいままで通り /private/etc/apache2/ 配下にあります*3。Apacheの起動と設定 - koba::blog で行った設定も移行されていましたが、肝心の httpd.conf 自体が入れ替えられているので有効にはなっていません。
httpd.conf の設定
diff -u -r1.1 httpd.conf --- httpd.conf 2018/05/08 14:44:41 1.1 +++ httpd.conf 2018/05/12 19:16:55 @@ -105,7 +105,7 @@ LoadModule reqtimeout_module libexec/apache2/mod_reqtimeout.so #LoadModule ext_filter_module libexec/apache2/mod_ext_filter.so #LoadModule request_module libexec/apache2/mod_request.so -#LoadModule include_module libexec/apache2/mod_include.so +LoadModule include_module libexec/apache2/mod_include.so LoadModule filter_module libexec/apache2/mod_filter.so #LoadModule reflector_module libexec/apache2/mod_reflector.so #LoadModule substitute_module libexec/apache2/mod_substitute.so @@ -161,7 +161,7 @@ LoadModule autoindex_module libexec/apache2/mod_autoindex.so #LoadModule asis_module libexec/apache2/mod_asis.so #LoadModule info_module libexec/apache2/mod_info.so -#LoadModule cgi_module libexec/apache2/mod_cgi.so +LoadModule cgi_module libexec/apache2/mod_cgi.so #LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so #LoadModule dav_lock_module libexec/apache2/mod_dav_lock.so #LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so @@ -170,7 +170,7 @@ #LoadModule imagemap_module libexec/apache2/mod_imagemap.so #LoadModule actions_module libexec/apache2/mod_actions.so #LoadModule speling_module libexec/apache2/mod_speling.so -#LoadModule userdir_module libexec/apache2/mod_userdir.so +LoadModule userdir_module libexec/apache2/mod_userdir.so LoadModule alias_module libexec/apache2/mod_alias.so #LoadModule rewrite_module libexec/apache2/mod_rewrite.so #LoadModule php7_module libexec/apache2/libphp7.so @@ -507,7 +507,7 @@ #Include /private/etc/apache2/extra/httpd-languages.conf # User home directories -#Include /private/etc/apache2/extra/httpd-userdir.conf +Include /private/etc/apache2/extra/httpd-userdir.conf # Real-time info on requests and configuration #Include /private/etc/apache2/extra/httpd-info.conf
mod_include、mod_cgi、mod_userdir を有効にしました。mod_userdir の設定は extra/httpd-userdir.conf で行います。
extra/httpd-userdir.conf の設定
diff -u -r1.1 extra/httpd-userdir.conf --- extra/httpd-userdir.conf 2018/05/08 14:50:01 1.1 +++ extra/httpd-userdir.conf 2018/05/08 14:50:29 @@ -13,7 +13,7 @@ # Control access to UserDir directories. The following is an example # for a site where these directories are restricted to read-only. # -#Include /private/etc/apache2/users/*.conf +Include /private/etc/apache2/users/*.conf <IfModule bonjour_module> RegisterUserSite customized-users </IfModule>
UserDir は変わらず Sites でした。ユーザごとに異なる設定を行うので users/*.conf をインクルードするよう変更します。
users/koba.conf の設定
Mavericksの時の設定が移行されていたのでそれを元に修正します。.htaccess を自由に使いたいので AllowOverride All
となっています。Apache 2.4 からアクセス制御の設定方法が変わっていますので、そこだけ修正しました。
diff -u -r1.1 users/koba.conf --- users/koba.conf 2018/05/13 11:26:43 1.1 +++ users/koba.conf 2018/05/13 11:27:57 @@ -1,6 +1,5 @@ <Directory "/Users/koba/Sites/"> Options Indexes MultiViews AllowOverride All - Order allow,deny - Allow from all + Require all granted </Directory>
追記 (2018-05-31)
ログローテーションについては新たに設定はしなかったのですが、Apacheのログをローテーションさせる - koba::blog で行なった設定が「移行アシスタント」で引き継がれているようです。