web-dev-qa-db-ja.com

Apacheサーバーがディレクトリにアクセスできません(403 Forbidden Error)

現在、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>

何が起こっているのか、どうすれば修正できるのか?

1
S P Kausthubh

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ではすべてのアクセスが拒否されると述べています。

1
Freddy