Configurando o Apache para Ler Páginas Pessoais dos Usuários

Esta dica é bem simples: se você usa o Apache 2 e quer permitir que cada usuário do sistema tenha sua página pessoal, residindo dentro de sua própria pasta, onde a página possa ser criada, modificada e atualizada pelo próprio usuário, sem interferência do administrador do sistema, então a solução que você procura está neste artigo!!

  • Criando as Pastas Pessoais dos Usuários


Em cada diretório de usuário (o famoso /home/usuario), você deve criar uma pasta chamada “public_html”, que deve ter permissão de acesso e escrita para o próprio usuário; Assim, suponhamos que temos um usuário genérico chamado “usuario”. Façamos, como root:

mkdir /home/usuario/public_html
chown usuario /home/usuario/public_html
chgrp usuario /home/usuario/public_html

Estes comandos não só criam a pasta pública onde será armazenada a página pessoal do usuário como também concede ao usuário em questão as permissões de acesso à mesma. É preciso fazer isto para cada usuário!! Claro que fica mais fácil se estes comandos estiverem dentro de um script. Se você quer saber como descobrir todos os usuários do sistema para criar este script!!


  • Configurando o Apache 2 Para Ler o public_html dos Usuários


Este passo é simples: basta ativar o módulo correto!! Verifique se o módulo userdir existe (se você instalou o Apache por um gerenciador de pacotes, certamente ele existirá):

ls /etc/apache2/mods-available/userdir*
/etc/apache2/mods-available/userdir.conf /etc/apache2/mods-available/userdir.load


É preciso que apareçam estes dois arquivos. Agora, verifique se eles estão ativados:

ls /etc/apache2/mods-enabled/userdir*


Caso não haja saída para o comando acima, então precisamos habilitá-los:

cd /etc/apache2/mods-enabled
ln -s ../mods-available/userdir.conf
ln -s ../mods-available/userdir.load


Isto cria os links simbólicos que vão ativar o módulo. A rigor, basta isto (e, claro, reiniciar o Apache) para que tudo funcione, mas várias configurações extras podem ser feitas, editando o arquivo “userdir.conf”. Em especial, verifique se a linha “UserDir public_html” está presente. Esta linha define o nome do diretório que será vasculhado na área do usuário para buscar a sua página pessoal.
É possível também ativar e desativar a leitura da pasta pública de usuários específicos, usando a diretiva UserDir, conforme o exemplo:

UserDir enabled usuario1 usuario2
UserDir disabled usuario3 usuario4

  • Habilitando o PHP nas Páginas Pessoais dos Usuários


Como esta configuração é muito flexível, é possível que você queira usar este artifício para permitir que vários usuários se tornem verdadeiros desenvolvedores web. Assim, o Apache permite que o PHP instalado no servidor seja habilitado em páginas pessoais dos usuários. Primeiramente, verifique se o seu PHP está instalado. Caso não esteja, é preciso instalá-lo. Agora, para ativar esta opção, vá em:

vi /etc/apache2/mods-enabled/php5.conf


e comente as seguintes linhas (comentar significa iniciá-las com o caracter “#”, conforme já está feito no exemplo abaixo):

# [IfModule mod_userdir.c]
# [Directory /home/*/public_html]
# php_admin_value engine Off
# [/Directory]
# [/IfModule]
#[/IfModule]

OBS: substitua os colchetes por sinais de maior e menor que.

  • Concluindo as Configurações!!


Agora, finalmente, reinicie o Apache:

/etc/init.d/apache2 restart


Pronto, tudo está configurado e as pastas já deverão estar respondendo. O endereço de acesso será: http://[domínio ou host]/~[usuario], onde [usuario] é o nome de cada usuário e [domínio ou host] pode ser o nome da máquina com o domínio ou o seu IP. Opcionalmente, você poderá, conforme a necessidade, atrelar algumas páginas pessoais a VirtualHosts, de forma a criar endereços de acesso diferenciados.

Rolar para cima