Apacheでバーチャルホストを立ち上げる(mac/Monterey)
macに最初からインストールされている Apache でバーチャルホストを立ち上げる。
(注) 文中 USERNAME は、macOSでのユーザーネーム。
(1) /etc/apache2/extra/httpd-vhosts.conf
...(略)...
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
ErrorLog "/private/var/log/apache2/localhost-error_log"
CustomLog "/private/var/log/apache2/localhost-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@mysite
DocumentRoot "/Users/USERNAME/Sites/Documents"
ServerName mysite
ErrorLog "/private/var/log/apache2/mysite-error_log"
CustomLog "/private/var/log/apache2/mysite-access_log" common
</VirtualHost>
(2) /etc/apache2/httpd.conf
以下の行のコメントを外して有効化する。
184 LoadModule userdir_module libexec/apache2/mod_userdir.so
521 Include /private/etc/apache2/extra/httpd-userdir.conf
527 Include /private/etc/apache2/extra/httpd-vhosts.conf
(3) /etc/apache2/extra/httpd-userdir.conf
以下の行のコメントを外して有効化する。
17 Include /private/etc/apache2/users/*.conf
(4) /etc/apache2/users/USERNAME.conf
以下の内容でファイルを作成する。
USERNAME.conf
<Directory "/Users/USERNAME/Sites">
Options Indexes MultiViews
AllowOverride All
Require all granted
</Directory>
(5) /etc/hosts
http://mysite でアクセスできるようにする。
127.0.0.1 localhost mysite
255.255.255.255 broadcasthost
::1 localhost
apacheの再起動
% sudo apachectl restart
なぜかアクセスできない
現在のところ、
では、htmlは表示されるが、
では、403 Forbidden となる。
/var/log/apache2/my-site-error_log
[Sat Jun 25 11:12:05.846972 2022] [core:error] [pid 4816] (13)Permission denied: [client ::1:49912] AH00035: access to / denied (filesystem path '/Users/USERNAME/Sites') because search permissions are missing on a component of the path
原因がわかった
% ls -lde / /Users/ /Users/USERNAME/ /Users/USERNAME/Sites
とすると、以下のように出力された。
drwxr-xr-x 20 root wheel 640 5 10 06:30 /
drwxr-xr-x 5 root admin 160 6 24 06:48 /Users/
drwxr-x---+ 34 USERNAME staff 1088 6 25 18:39 /Users/USERNAME/
0: group:everyone deny delete
drwxr-xr-x 4 USERNAME staff 128 6 25 10:55 /Users/USERNAME/Sites
ユーザーディレクトリに other に読み取り権限と実行権限がない!
macOS は、ユーザーフォルダを作成するのに、初期値として chmod 750 とするのか〜。
% chmod 751 USERNAME
other に実行権限だけをつけた。これで、うまくいった。
設定ファイルのチェック
% apachectl configtest
カテゴリー: Apache, MacOS, memo
タグ: Apache, virtualhost
カウント: 213