Apache2「すべて許可」が機能しない


12

DebianテストでApache2を新規インストールし、次のようなディレクトリに仮想ホストを構成しました。

<Directory "/path/to/project">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

ただし、アクセスすると403 Forbiddenエラーが表示され、エラーログに次のように表示されます。

[Mon Sep 23 22:07:57.249276 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of Require all denied: denied
[Mon Sep 23 22:07:57.249349 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of <RequireAny>: denied
[Mon Sep 23 22:07:57.249361 2013] [authz_core:error] [pid 8599] [client 127.0.0.1:49057] AH01630: client denied by server configuration: /path/to/project/some_file

「すべてを許可する」を使用している場合、「すべてを拒否する結果:拒否されました」という結果が表示されるのはなぜですか?

それらのファイルはどのユーザーでも読み取り可能であり、万が一所有者を不幸にもApache(www-data)に変更しようとした場合に備えて。また、上のデフォルトのホストはhttp://localhost正常に動作し、phpmyadminもhttp://localhost/phpmyadmin動作します。

インターネットで見つけたすべてのヘルプは、OrderディレクティブをRequireに置き換えることです。私はすでにそれをしました。今何が問題なのでしょうか?


私には正しいようです。Require all deniedでより具体的な他のディレクティブではないのは確かですか?
リチャードソルト

回答:


5

次の2つのことを試してください。

1)実行apachectl -tして、ファイルの構文が有効であることを確認します

2)実行apachectl -Sして、解析されているファイルを表示します

たとえば、/ usr / local / etc / apache2 / 2.4 / httpd.confを編集している場合がありますか?...しかし、apachectl -Sを実行すると、以下が表示される場合があります。

VirtualHost configuration:
*:80                   localhost (/private/etc/apache2/extra/httpd-vhosts.conf:23)

すなわち。仮想ホストはhttpd.confをオーバーライドし、独自のホストRequire all deniedまたは類似のホストを含​​む場合があります。


3

承認を設定しましたが、認証は設定していません。そのため、「すべて許可」では認証されたすべてのユーザーにアクセスが許可されますが、ユーザーは実際には認証されません。


9
それでは、認証をどこに設定する必要がありますか?非常に明確ではありません...
edi9999

2
技術的には正しいですが、これは質問に答えません。Require all granted特にすべてのアクセスを許可し、認証を必要としません。比phor的にドアを大きく開いたときに認証する意味はありません。
マルタインHeemels

2

AllowOverride Allディレクティブを使用しているため、に.htaccessファイルがある場合もあります/path/to/project/。これには、オーバーライドされたディレクティブが含まれる場合があります。

また、VHostに他のパラメーターがない場合も確認してください。


私はこのエラーに苦労していました。すべてのApache構成ファイルを何度も確認した後、無効なコンテンツを持つ.htaccessファイルを見つけました。これを指すメッセージはありません。
ダスティンバトラー

1

Wampserver 32をインストールした後、Apacheによって拒否されるという同じ問題がありました。

私はhttpd.conf3日間、運の悪さで多くの方法でファイルをチェックし、修正しようとしました。

AH01630:サーバー構成によりクライアントが拒否されました

VirtualHostを定義しておらず、httpd.confファイルには何も表示されていないと確信していました。

最後に、サーバーを「デバッグ」エラーファイル用に構成しました。これにより、さらに興味深いメッセージが表示されました。

AH01626:Require localの承認結果:拒否されました

それがこの投稿につながっています。

そして、それはC:\wamp\bin\apache\apache2.4.18\conf\extra\httpd-vhosts.confファイルに隠されていました:明示的に「ローカルを要求する」という、望ましくないVirtualHostであり、もちろんサーバー外部からのすべてのクエリを拒否しました。

これで、VirtualHostが必要になるまでこのファイルを空にし、正常に機能します。最終的に、ユーザーに通知せずにこのファイルを事前設定するだけでなく、「サーバー」が何も処理できないようにデフォルト値を設定することは、Wampserverからはかなり奇妙です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.