Basta adicionar AuthMySQL_Authoritative Off
ao .htaccess
Atualizando para o Ubuntu 14.04 (e Apache2 2.4) eu não posso usar o MySQL como htaccess;
Antes de atualizar eu estava usando o MySQL como htaccess no host virtual - funcionou muito bem:
<Directory /var/www/html/tilmelding/login>
AuthBasicAuthoritative Off
AuthUserFile /dev/null
# begin auth_mysql configuration
AuthMySQL On
AuthMySQL_Host localhost
AuthMySQL_User **********
AuthMySQL_Password *********
AuthMySQL_DB **********
AuthMySQL_Password_Table user_info
AuthMySQL_Username_Field user_name
AuthMySQL_Password_Field user_passwd
AuthMySQL_Empty_Passwords Off
AuthMySQL_Encryption_Types PHP_MD5
AuthMySQL_Authoritative
AuthType Basic
AuthName "auth_mysql test"
Require valid-user
Após a atualização, não funcionou.
No arquivo de log eu tenho:
[:debug] [pid 31333] mod_auth_mysql.c(1578): Constructing password collection query with passfield=[user_passwd], table=[user_info], userfield=[helgoland], where_clause=[]
[:debug] [pid 31333] mod_auth_mysql.c(1410): sec->dbh in /var/www/html/tilmelding/login/ is
[:debug] [pid 31333] mod_auth_mysql.c(1417): Ordinary query
[:debug] [pid 31333] mod_auth_mysql.c(1434): Running query: [SELECT user_passwd FROM user_info WHERE user_name='helgoland']
[:debug] [pid 31333] mod_auth_mysql.c(1522): Checking with PHP_MD5
[:debug] [pid 31333] mod_auth_mysql.c(1524): Auth succeeded
[:error] [pid 31333] No requires line available
Eu posso fazer a consulta da CLI e recuperar um MD5.
O que eu perdi?
Basta adicionar AuthMySQL_Authoritative Off
ao .htaccess
Eu me deparei com exatamente o mesmo problema, então me deparei com este post.
Para quem acaba aqui, esta é a minha conclusão.
Depois de pesquisar mais na net, a maioria das pessoas parece concluir que o lib-apache2-mod-auth-mysql é incompatível com o Apache 2.4 (padrão no Ubuntu 14.04) Além disso, o suporte para este módulo parou.
Alguns sugerem que a recompilação (versão 3.0.0) com alguns patches resolve o problema. Mas isso parece bastante "hacky".
A maneira oficial do "Apache" para usar autenticação / autorização básica usando o MySQL é usar o módulo dbd (mod_authn_dbd). Como fazer isso é explicado claramente na documentação oficial do Apache. link .
Esta documentação está licenciada sob a licença Apache. link
Portanto, esteja ciente de que, embora você possa instalar o lib-apache2-mod-auth-mysql com o apt-get no Ubuntu 14.04 LTS, isso provavelmente é evitado, já que é inerentemente quebrado para esta versão.
AuthMySQL_Authoritative Off também funcionou para mim (como uma linha na configuração Virtualhost). Acredito que permite que mod_auth_mysql passe as credenciais para mod_auth para autenticação.