Apache:「AuthTypeが設定されていません!」500エラー


98

Apache httpd Webサーバーを使用してから久しぶりです。プロジェクトのローカルサーバーを起動しています。localhost/ index.htmlをリクエストしようとすると、500エラーが発生し、エラーログに次のように表示されます。

[Tue Jan 21 09:23:58 2014] [crit] [client ::1] configuration error:  couldn't perform authentication. AuthType not set!: /index.html
[Tue Jan 21 09:23:58 2014] [error] an unknown filter was not added: DEFLATE
[Tue Jan 21 09:23:58 2014] [crit] [client ::1] configuration error:  couldn't perform authentication. AuthType not set!: /favicon.ico

Apacheの設定に2つのエラーがある可能性があります。1つは「AuthType not set!」に関連しています。おそらく「フィルターは追加されませんでした:DEFLATE」に関連しています。私はこれらが何を意味するのか、どこから掘り始めるのか分かりません。

基本的なGoogle検索により、このリンクが明らかになりました。このリンクは、犯人が「すべて許可が必要」である可能性があることを示しています。私のhttpd.confのこの行が関係している可能性があります。

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

このapache構成は、主にこのプロジェクトの本番環境で使用されるものであるため、現在は自分のワークステーションではなく、これで機能することがわかります。これはどういう意味ですか、次に何を試すべきですか?私は「すべて許可する必要があります」をコメントアウトしてapacheを再起動しようとしましたが、役に立ちませんでした。

このSOの質問に続いて mod_authz_hostもロードしました

LoadModule authz_host_module modules/mod_authz_host.so

「すべて許可」を追加し、サーバーを再起動しました。しかし、問題は解決しません。収縮の問題は無関係であるように見え、追加することで簡単に解決されました

LoadModule deflate_module modules/mod_deflate.so

問題は残っていますが、この500エラーを解決するにはどうすればよいですか?

[Tue Jan 21 09:44:20 2014] [crit] [client ::1] 
configuration error:  couldn't perform authentication. 
AuthType not set!: /index.html

回答:


183

言う行を削除します

Require all granted

Apache> = 2.4でのみ必要です


1
または、<IfVersion>構文を使用します...以下の私の回答を参照してください。
pkout 2014

すばらしい修正-見つけるのに時間がかかりすぎました。ありがとう!
AlienWebguy 2015

OS X MAMP apache 2.2では、「すべての権限が必要」から「すべて満足」に変更
Matilda Yi Pan

49

ここでの問題は別の方法で定式化できます。Apache2.2と2.4の両方で機能する構成を作成するにはどうすればよいですか?

Require all grantedは2.4のみですが、2.4で機能しなくAllow all ...なり、両方で機能する構成をロールアウトできるようにしたいと考えています。

私が見つけた唯一の解決策は、適切なものかどうかはわかりませんが、使用することです:

# backwards compatibility with apache 2.2
Order allow,deny
Allow from all

# forward compatibility with apache 2.4
Require all granted
Satisfy Any

これで問題が解決するか、少なくとも私にとっては問題は解決しました。より複雑なアクセスルールがある場合、問題はおそらく解決がはるかに困難になります...

このかなり似た質問も参照してください。Debian wikiには、2.2と2.4の両方をサポートするための役立つ説明もあります。


2つのスニペットを意図的に結合したので、ここで両方のバージョンで機能します。再度分離しないでください。
anarcat

1
魅力のように働いた。ありがとう!
アンナウェリントン

34

あるいは、このソリューションは、Apache2バージョン<2.4および> = 2.4の両方で機能します。「バージョン」モジュールが有効になっていることを確認します。

a2enmod version

そして、代わりにこのコードを使用してください:

<IfVersion < 2.4>
    Allow from all
</IfVersion>
<IfVersion >= 2.4>
    Require all granted
</IfVersion>

あなたはまた、別のモジュールを起動する避けるために、この答えで行くことができます。stackoverflow.com/questions/10707186/...
ステファン・

3

httpd.confファイル(etc / httpd / conf)から次の行を削除/コメントするだけです

すべての許可が必要

これはApacheバージョン2.2まで必要であり、そこからは必要ありません。


0

あなたはApacheのバージョン2.4.xを持っていると思います。

この2つのモジュールをロードしましたか?-mod_authn_core-mod_authz_core

LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so

PS:承認と権利に関する私の推奨は(デフォルト)です。

LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so

Georgioに感謝します。実際には、モジュールディレクトリにauth {n | z} _coreモジュールがありません。
user3220334 2014年

これらのモジュールはすべてhttpd -l
Georgio 2014年

私はそれらを個別に構築する必要がありますか?これは、CentOSでの2.2.15の標準のインストールです。`apachectl -versionサーバーバージョン:Apache / 2.2.15(Unix)サーバービルド:2013年8月13日17:29:28`
user3220334

Arfさん、申し訳ありませんが、2.4.xではなくApache 2.2.xを使用しています。モジュールに同じ名前はありません。モジュールは次のとおりです。mod_authn_file.c mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic
Georgio

リストをありがとう、すべてを追加して再起動しましたが、まだエラーが発生します。
user3220334 2014年

0

あなたのsudo a2enmod rewrite設定でそれを使用すれば試すことができます。

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