macOS には Apache がインストールされています*1。
以前から これを起動し、各ユーザが .htaccsess
で動作を変更できるよう設定しているので Sonoma でもその設定を行います。
Apache を起動します。
$ sudo apachectl start
http://localhost/ にアクセスすると、いつもの如く It works! が表示されます。
これだけで再起動時にも自動起動するようになります*2。 停止するときは以下の通り。
$ sudo apachectl stop
これで再起動時にも自動起動しないようになります。
設定ファイルは /etc/apache2/
にあります。
httpd.conf を修正し、mop_include (SSI)、mod_cgi (CGI)、mod_userdir (ユーザディレクトリ ~/Sites/
の参照)を有効にします。
--- httpd.conf 2024/01/17 11:01:35 1.1
+++ httpd.conf 2024/01/17 11:08:22
@@ -110,7 +110,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
@@ -171,7 +171,7 @@
#LoadModule cgid_module libexec/apache2/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
- #LoadModule cgi_module libexec/apache2/mod_cgi.so
+ LoadModule cgi_module libexec/apache2/mod_cgi.so
</IfModule>
#LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
#LoadModule dav_lock_module libexec/apache2/mod_dav_lock.so
@@ -181,7 +181,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
#PHP was deprecated in macOS 11 and removed from macOS 12
@@ -518,7 +518,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
extra/httpd-userdir.conf で個々のユーザごとに設定を行えるようにします。
--- extra/httpd-userdir.conf 2024/01/17 11:12:43 1.1
+++ extra/httpd-userdir.conf 2024/01/17 11:13:56
@@ -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>
users/koba.conf (各ユーザごとの設定)で .htaccess の制限を定義します。
<Directory "/Users/koba/Sites/">
Options Indexes MultiViews
AllowOverride All
Require all granted
</Directory>
ここでは制限なく機能が使えるように AllowOverride All
を設定しました。
/etc/newsyslog.d/org.apache.httpd.conf を追加し、以下を記述しました。
# logfilename [owner:group] mode count size when flags [/pid_file] /var/log/apache2/access_log root:wheel 644 5 * $W0 Z /var/run/httpd.pid /var/log/apache2/error_log root:wheel 644 5 * $W0 Z /var/run/httpd.pid
毎週日曜にログを切り替え、5世代保存します。