Вот мой файл сайта на сервере 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>
Я перезапустил веб-сервер и когда я перехожу к ссылке:
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
Первая строка - когда я соединяюсь с сайтом, но работы сайта, вторая строка - когда я пытаюсь получить доступ к/var/www/mydir/private dir, аутентификация прибывает в браузер, но я не могу войти.
РЕДАКТИРОВАНИЕ 2:
После изменения AuthName "пользователям" новая ошибка:
[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» try, AuthName «users» перезапускает apache с;
sudo service apache2 reload
После AuthUserFile добавьте следующее:
AuthGroupFile /dev/null
Помогает ли это после перезапуска Apache? Если нет, что должен сказать $ {APACHE_LOG_DIR} /error.log, когда аутентификация не удалась?