現在、Fedora 29でApacheウェブサーバーを実行しており、ディレクトリアクセスの問題に直面しています。
…/www/html/applications/views
にあるphpおよびHTMLファイルは問題なく実行できますが、…/www/html/applications/controllers
にあるスクリプトを実行しようとすると、403 Forbiddenエラーが発生します。
後者のディレクトリとその内容のパーミッションを前者のものと一致させようとしましたが、役に立ちませんでした。所有権を現在のユーザーに切り替えて権限をもう一度変更しようとしましたが、まだこのエラーが発生します。
また、Apacheサーバーのエラーログを確認しましたが、これに関連するものは何もないようです(表示される最後のエラーは5月22日であり、phpスクリプトの最後の再実行は5月25日だったという事実から結論付けます)。私が間違っている場合)。以下は、最新の3つのエラーメッセージです。
[Wed May 22 22:40:07.338339 2019] [lbmethod_heartbeat:notice] [pid 17890:tid 139756349729024] AH02282: No slotmem from mod_heartmonitor
[Wed May 22 22:40:07.350863 2019] [mpm_event:notice] [pid 17890:tid 139756349729024] AH00489: Apache/2.4.39 (Fedora) OpenSSL/1.1.1b mod_Perl/2.0.10 Perl/v5.28.2 configured -- resuming normal operations
[Wed May 22 22:40:07.350906 2019] [core:notice] [pid 17890:tid 139756349729024] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
また、以下は.htaccess
ファイルの内容です。
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
何が起こっているのか、どうすれば修正できるのか?
Deny from all
はApache 2.2構文で、Require all denied
はApache 2.4構文です。
https://httpd.Apache.org/docs/2.4/upgrading.html#access
この例では、認証はなく、すべての要求が拒否されます。
2.2設定:
注文拒否、許可
すべてから拒否2.4設定:
すべての拒否を要求
https://httpd.Apache.org/docs/2.2/mod/mod_authz_Host.html#deny
構文:
Deny from all|Host|env=[!]env-variable [Host|env=[!]env-variable] ...
このディレクティブを使用すると、ホスト名、IPアドレス、または環境変数に基づいてサーバーへのアクセスを制限できます。
Deny
ディレクティブの引数は、Allow
ディレクティブの引数と同じです。
https://httpd.Apache.org/docs/2.4/mod/mod_authz_core.html#require
Require all denied
アクセスは無条件に拒否されます。
.htaccess
がどこにあるかはおっしゃっていなかったので、…/www/html/applications/views
が機能していて…/www/html/applications/controllers
が機能していない理由はわかりません。しかし、あなたの.htaccess
の内容は、Apache 2.2/2.4ではすべてのアクセスが拒否されると述べています。