Configurando Apache2 para acessar a public_html do usuário com senha.

Post date: 10/04/2014 22:46:46

Apache é um dos servidores http mais utilizados atualmente e está presente em cerca de 60% de todos os Web sites na Internet. Este servidor agrega características de ser

extremamente configurável, robusto, além de possuir um código aberto.

Neste tutorial, será apresentado o passo-a-passo para configurar os sites locais do usuário (local site = public_html) e fazer com que cada usuário possa gerenciar suas próprias configurações como, autenticação de usuário, controle de acesso, dentre outras necessidades configuráveis pelo .htaccess.

Inicialmente, deve-se instalar o apache2

$ sudo su # apt-get install apache2 apache2-utils

Foi solicitado a instalação do pacote apache2-utils pois no exemplo mostrado no tutorial será necessário o comando htpasswd para configurar uma página web com autenticação por arquivo (autenticação básica). A partir do apache configurado, podemos inicialmente configurar os sites locais dos usuários e depois sobrescrever as configurações do site utilizando o .htaccess para

Configurando os sites do usuário

Para habilitar os sites do usuário

# a2enmod userdir

para evitar que ao criar um usuário o mesmo tenha que criar a pasta public_html. Para evitar que o usuário tenha que criar sua própria página public_html, temos que criar as estruturas na pasta /etc/skel.

# mkdir /etc/skel/public_html # touch /etc/skel/public_html/index.html # echo "<html> <body><h1> welcome to local user site </h1>this is a sample page, create yours</body></html>" >> /etc/skel/public_html/index.html

Com isto, o site do usuário está disponível e pronto para ser editado. O mesmo acessa o servidor via SSH ou FTP e altera seus arquivos, inserindo no site o seu conteúdo.

Usuário inserindo suas próprias configurações

O arquivo .htaccess faz com que uma diretório gerenciado pelo apache sobrescreva as configurações padrão do apache, dando ao usuário a possibilidade de ter configurações adicionais como controle de acesso.

Para fazer isto, o usuário deve criar um arquivo .htaccess na sua public_html

<seu usuario> ~ touch ~/public_html/.htaccess

No arquivo o usuário pode utilizar qualquer diretriz do apache, por exemplo, com o código a seguir é possivel controlar o acesso a página raiz de seu site local, ou colocando o .htaccess em um diretório específico, controlar o acesso.

AuthType Basic AuthName "Restricted Files" # (Following line optional) AuthBasicProvider file AuthUserFile /home/<seu usuario>/passwords Require valid-user

Depois disto, é so criar o arquivo com passwords através dos comandos

<seu usuario> ~ htpasswd -c ~/passwords usuario

para criar o arquivo ou para inserir um novo usuario

<seu usuario> ~ htpasswd ~/passwords usuario

Depois disto, o usuário poderá controlar o acesso ao seu site, de forma simples e objetiva.