ApacheでWebディレクトリをパスワードで保護しようとしています。私はこのようにサイトを設定しています:
D:/
webapp/
lib/
.htpasswd
document_root/
admin/
index.php
.htaccess
.htaccess
持っている:
AuthName "Authorization Required"
AuthType Basic
AuthUserFile D:\webapp\lib\.htpasswd
require valid-user
そしてその .htpasswd
持っている:
user:passworddigest
アクセスしようとするとlocalhost/index.php
ブラウザで500エラーが発生します。 Apacheエラーログには次のものがあります。
["date"] [crit] [client "ip"] configuration error: couldn't check user. Check your authn provider!: /admin/
私はグーグルで検索しましたが、サーバーのコンテキストでこのエラーが何を意味するのか理解できません。誰もが何が起こっているのか知っていますか?また、Windowsサーバー上のWebディレクトリを認証するためにApacheを使用する簡単な方法があれば、問題は解決します。
上記で提案したJimBのような権限の問題ではない場合(私もそうだと思います)、Apacheにauthnモジュールをロードしていない可能性があります--mod_authn。 Windowsでそれを行う方法はわかりませんが、グーグルで検索すれば、それがどのように行われるかがわかると確信しています。
.htaccessの認証タイプ(_AuthType Basic
_)が間違っていると思います。_.htpasswd
_を見ると、パスワードはhtdigest
ではなくhtpasswd
によって設定されていることがわかります(間違っている場合は修正してください)。したがって、構成エラーです。
これを解決するには、次の_.htaccess
_情報を試してください。問題は解決するはずです。
_AuthName "Authorization Required"
AuthType Digest
AuthUserFile D:\webapp\lib\.htpasswd
require valid-user
_
ただし、_password is transmitted in
_ MD5 Digest _in the network whereas
_ AuthType Basic`はパスワードをクリーンなテキストで転送するため、上記の方法を使用することをお勧めします。
ただし、_AuthType Basic
_が必要な場合は、次の_.htaccess
_を試してください。
_AuthName "Authorization Required"
AuthType Basic
AuthUserFile D:\webapp\lib\.htpasswd
require valid-user
_
&次のリンクからhtpasswordを作成します。
_.htpasswd
_ファイルを更新します。
私はWindowsでこれを行っていませんが、コメントアウトされている場合は、この行のコメントを解除して、httpd.confファイルのauth_digestモジュールを有効にしてみてください。デフォルトでは無効になっています。
LoadModule auth_digest_module modules/mod_auth_digest.so