Результат sudo apachectl -t -D DUMP_MODULES
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
auth_digest_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
headers_module (shared)
mime_module (shared)
negotiation_module (shared)
php5_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
setenvif_module (shared)
ssl_module (shared)
status_module (shared)
Syntax OK
Похоже, что модуль digest auth работает на моем сервере, но когда я пытаюсь получить доступ к $_SERVER['PHP_AUTH_DIGEST'], переменная не существует.
Мой виртуальный хост настроен следующим образом:
<VirtualHost *:80>
ServerName sam
DocumentRoot /var/www/sam/public/
ErrorLog /var/log/apache2/sam-error.log
SetEnv APPLICATION_ENV "development"
<Directory /var/www/sam/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
#AuthType Digest
#AuthName "api"
</Directory>
</VirtualHost>
В Вашей конфигурации Apache Вы не включили Дайджест-аутентификацию. Попытайтесь не комментировать соответствующие строки и перезапустите Apache через sudo /etc/init.d/apache2 restart
:
<VirtualHost *:80>
ServerName sam
DocumentRoot /var/www/sam/public/
ErrorLog /var/log/apache2/sam-error.log
SetEnv APPLICATION_ENV "development"
<Directory /var/www/sam/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
AuthType Digest
AuthName "api"
</Directory>
</VirtualHost>
Если это не работало или дает ошибку сервера, регистрируйте журнал ошибок /var/log/apache2/access.log
.
При реализации Дайджест-аутентификации можно хотеть проверить пример дайджест-аутентификации на php.net. Описание всех $_SERVER
переменные могут быть найдены здесь.