Estou tentando configurar o acesso mercurial usando Apache http. Requer autenticação. O meu /etc/apache2/sites-enabled/mercurial
fica assim:
NameVirtualHost *:8080
<VirtualHost *:8080>
UseCanonicalName Off
ServerAdmin webmaster@localhost
AddHandler cgi-script .cgi
ScriptAliasMatch ^(.*) /usr/lib/cgi-bin/hgwebdir.cgi/$1
</VirtualHost>
Todo tutorial que leio na internet me diz para inserir estas linhas:
AuthType Basic
AuthUserFile /usr/local/etc/httpd/users
Mas quando faço isso, recebo o seguinte erro:
# /etc/init.d/apache2 reload
Syntax error on line 8 of /etc/apache2/sites-enabled/mercurial:
AuthType not allowed here
Minha distro é um Ubuntu personalizado chamado Turnkey Linux Redmine
Você deve colocar isso dentro de uma diretiva de localização:
Estou executando o Apache2 no Ubuntu 10.04 - mesmo problema e obrigado pela solução. Achei que tinha que colocar a configuração em
/etc/apache2/apache2.conf
Você pode gerar o nome de usuário e a senha usando htpasswd. Novo arquivo:
Para anexar ao arquivo existente:
Você pode proteger um Local ou um Diretório. Para um diretório, adicione algo como:
Você também pode adicionar diretivas
Deny
eAllow
para um controle mais preciso.Parece que você está especificando as configurações de autenticação no arquivo
VirtualHost
. Normalmente, essas configurações são especificadas naDirectory
diretiva.Você também pode usar
.htaccesss
arquivos, mas especificar no Apache conf é um bom padrão, pois tem menos exposição.Documentação do Apache
Estou executando o Apache2 no Ubuntu 10.10. Eu tenho tido problemas com todas as soluções acima, mas isso funcionou bem (do apache docs):
A maior diferença das respostas acima parece ser a diretiva AuthBasicProvider definida como "arquivo" e a diretiva Require, incluindo o bit "usuário" antes do nome de usuário real.
Espero que isso ajude alguém.
Estamos executando uma versão otimizada de memória do apache e encontramos esse problema.
Isso ocorreu porque a seguinte linha não estava presente na configuração do apache: