quarta-feira, 1 de agosto de 2007

Protegendo pastas do Apache com senha

Hoje eu tive que colocar senha numa pasta do apache e como nunca tinha feito isso tive que correr atrás no google. Então axei um site que me ajudou muito

Então adaptando um pouco lá vai:

entre na pasta do apache que deseja proteger, por exemplo /var/www/pasta_com_senha/

utilize o comando abaixo para criar o arquivo com a senha

# htpasswd -c /var/www/pasta_com_senha/.htpasswd web

Explicando:

/var/www/pasta_com_senha/.htpasswd é o arquivo que armazena a senha, você pode utilizar o nome que quiser porém por questões de segurança sempre o mantenha oculto. Obrigatoriamente ele deve estar na pasta que você deseja proteger.

web é o usuário que vai acessar a pasta, você pode escolher qualquer usuário.

após executar o comando ele vai pedir uma senha, que será a de acesso junto com o usuário web.

Agora no arquivo de configuração do Apache 2, /etc/apache2/apache2.conf , adicione o seguinte trecho:



<directory "/var/www/pasta_com_senha/">
AllowOverride None
Options Indexes MultiViews
Order allow,deny
Allow from all

AuthType Basic
AuthName "Acesso Restrito: "
AuthUserFile "/var/www/pasta_com_senha/.htpasswd"
Require valid-user

</directory>



Explicando as últimas linhas:

AuthType Basic É o tipo de autenticação
AuthName "Acesso Restrito: " É a mensagem que aparece quando pedir a senha
AuthUserFile "/var/www/pasta_com_senha/.htpasswd" É o arquivo que armazena a senha
Require valid-user Essa linha indica que usuário pode acessar, pode trocar valid-user pelo nome do usuário no caso web.

Para testar crie um arquivo php dentro da pasta com o seguinte conteúdo:

<?
phpinfo()
?>


Agora renicie o apache2

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

e tente acessar o arquivo php.

Qualquer dúvida comentem...