catalina apache php

catalinaにアップデートした後、ローカルのapache-php環境をいじってなかったので久々に起動してみると・・・表示されない?色々と調べてみると、OSのUpdateでApache設定やディレクトリ権限がすべてデフォルトになってしまった模様。1つ1つ確認して設定しました。最後Permissionに苦しめられましたので、複数情報があったほうが良いだろうということで掲載しています。

■ 環境

  • macOS Catalina (10.15.4)
  • Apache 2.4.41
  • PHP 7.3.12

■ 実現したいこと

http://localhost/~{username}/ で、/Users/{username}/Sites/ を表示

■ やったこと

○ /etc/apache2/httpd.conf の変更

以下のコメントを外す
LoadModule http2_module libexec/apache2/mod_http2.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php7_module libexec/apache2/libphp7.so
Include /private/etc/apache2/extra/httpd-userdir.conf
以下の設定を変更
ServerName pcname.local
AllowOverride All
DirectoryIndex index.html index.php

○ /private/etc/apache2/users/{username}.conf の変更

以下が必要らしい情報があったので1行目に追加(Require all grantedにはなっていた)
DocumentRoot "/Users/{username}/Sites/"

○ /private/etc/apache2/extra/httpd-userdir.conf の変更

以下のコメントを外す
Include /private/etc/apache2/users/*.conf
※ 最終的に私はここがポイントでした。

上記の後、apache 再起動(sudo apachectl restart)で終了

最初に書いたように設定中、Forbidden [ You don’t have permission to access this resource. ]に苦しめられました。apacheのエラーログは「AH01630: client denied by server configuration: /Users/{username}/Sites/」といった感じです。このエラーはApacheの権限設定に由来するようです。実際ディレクトリ権限が777でもエラー内容は変わりませんでした。httpd-userdir.confでコメントアウトされていることに中々気づかずにというのが主な原因です。

以上、参考になればと。

Author: jester