現在、Fedora 29でApache Webサーバーを実行しており、ディレクトリアクセスの問題があります。
でPHPとHTMLファイルを実行することができますが、…/www/html/applications/views
実行しようとすると…/www/html/applications/controllers
。
私は後者のディレクトリとその内容の権限を以前のディレクトリとその内容の権限と一致させようとしましたが、役に立ちませんでした。所有権を現在のユーザーに切り替えて権限を変更してみましたが、まだこのエラーが発生します。
また、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
これは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で動作します。