質問: apache2ダイジェスト認証 ubuntuサーバー11.10のサイトファイルは次のとおりです。<ifmodule mod_ssl.c> <virtualhost *:443> serveradmin webmaster@localhost documentroot /var/www/mydir serveralias *.mydomain.no-ip.info <directory /> options followsymlinks allowoverride none </directory> <directory /var/www/mydir> options indexes followsymlinks multiviews allowoverride none order allow,deny allow from all </directory> scriptalias /cgi-bin/ /usr/lib/cgi-bin/ <directory "/usr/lib/cgi-bin"> allowoverride none options +execcgi -multiviews +symlinksifownermatch order allow,deny allow from all </directory> errorlog ${apache_log_dir}/error.log # possible values include: debug, info, notice, warn, error, crit, # alert, emerg. loglevel warn customlog ${apache_log_dir}/ssl_access.log combined alias /doc/ "/usr/share/doc/" <directory "/usr/share/doc/"> options indexes multiviews followsymlinks allowoverride none order deny,allow deny from all allow from 127.0.0.0/255.0.0.0 ::1/128 </directory> # ssl engine switch: # enable/disable ssl for this virtual host. sslengine on # a self-signed (snakeoil) certificate can be created by installing # the ssl-cert package. see # /usr/share/doc/apache2.2-common/readme.debian.gz for more info. # if both key and certificate are stored in the same file, only the # sslcertificatefile directive is needed. sslcertificatefile /etc/ssl/certs/ssl-cert-snakeoil.pem sslcertificatekeyfile /etc/ssl/private/ssl-cert-snakeoil.key </virtualhost> </ifmodule> 今、私はディレクトリへの許可されたアクセスが欲しかった:/var/www/mydir/private 次のようなダイジェストファイルを作成しました。sudo htdigest -c /etc/apache2/digest_auth users enedene そこで、<\ virtualhost>の前に次を追加しました。<directory "/var/www/mydir/private/"> authtype digest authname "private" authdigestprovider file authuserfile /etc/apache2/digest_auth require enedene </directory> webサーバーを再起動し、リンクに移動すると:https://mydomain.no-ip.info/private ユーザー名とパスワードの入力を求められますが、問題は、作成したユーザー/パスワード以外ではなく、ユーザー名/パスワードの組み合わせが間違っているかのように継続的に拒否して再度プロンプトが表示されることです。 私の設定の何が問題になっていますか?編集: /var/log/apache2/error.logの内容は次のとおりです。[wed dec 07 18:00:47 2011] [error] [client 188.129.120.255] file does not exist: /var/www/mydir/favicon.ico [wed dec 07 18:01:07 2011] [error] [client 188.129.120.255] digest: user `enedene' in realm `private' not found: /private 最初の行はサイトに接続するときですが、サイトは機能します。2行目は/ var/www/mydir/private dirにアクセスしようとするときです。ブラウザに認証が来ますが、アクセスできません。編集2: authnameを「users」に変更した後の新しいエラー:[wed dec 07 18:07:59 2011] [error] [client 188.129.120.255] access to /private failed, reason: require directives present and no authoritative handler.
回答: レルムはユーザーであるため、authnameディレクティブは「users」にする必要がありますauthnmae「private」を試す代わりに、authname「users」でapacheを再起動します。sudoサービスapache2リロード