Introdução
Imagine que você administra um servidor universitário. Você quer que cada estudante tenha seu próprio site pessoal, acessível por uma URL como university.com/~student1.
Em vez de colocar todos os arquivos em um único diretório central, o Apache oferece um recurso chamado diretórios de usuários. Ele permite que cada usuário hospede um site diretamente em seu próprio diretório pessoal, normalmente em um subdiretório chamado public_html.
Esse recurso é menos comum em grandes plataformas modernas de produção, mas continua sendo útil para ensinar como o mapeamento de URLs, as permissões e o conteúdo web de cada usuário funcionam em conjunto.
Neste laboratório, você vai:
- Ativar o módulo: ativar o recurso
userdirno Apache. - Criar o diretório: configurar a pasta
public_htmlno seu diretório pessoal. - Configurar as permissões: garantir que o Apache tenha as permissões necessárias para acessar seus arquivos.
- Testar: acessar sua página pessoal por meio de uma requisição do navegador.
Ative o módulo Userdir
O Apache é um servidor modular, o que significa que você pode ativar ou desativar recursos específicos conforme necessário. O módulo userdir faz o mapeamento de URLs como ~username para o diretório pessoal do usuário.
Esse design modular é uma das características marcantes do Apache. Muitos recursos não ficam sempre ativos por padrão; em vez disso, os administradores ativam os módulos necessários para a função específica do servidor.
Verifique o status do Apache para garantir que ele esteja em execução:
sudo service apache2 status
Ative o módulo userdir usando o comando a2enmod (Apache 2 Enable Module):
O utilitário a2enmod faz parte das convenções de empacotamento do Apache no Ubuntu. Ele simplifica o gerenciamento de módulos ao criar os links simbólicos corretos, evitando que você precise editar tudo manualmente.
sudo a2enmod userdir
Você deverá ver uma mensagem informando que o módulo está sendo ativado.
Para confirmar, liste os módulos ativados:
ls /etc/apache2/mods-enabled/ | grep userdir
Você deverá ver userdir.conf e userdir.load, confirmando que o módulo está ativo.
Configure o diretório web
O módulo userdir procura uma pasta chamada public_html dentro do diretório pessoal do usuário. Neste laboratório, seu nome de usuário é labex.
Vá para o seu diretório pessoal:
cd ~
Crie o diretório public_html:
mkdir ~/public_html
Crie um arquivo index.html simples dentro desse diretório para testar seu site:
echo "<h1>My Personal Page</h1><p>Welcome to the labex user directory.</p>" > ~/public_html/index.html
Agora, precisamos tratar das permissões. Por padrão, os diretórios pessoais dos usuários geralmente são privados, impedindo que o usuário do Apache (www-data) entre neles. O Apache precisa da permissão de execução (x) no seu diretório pessoal para acessar a pasta public_html dentro dele.
Este é um bom exemplo de como a entrega de conteúdo web depende das permissões normais do sistema de arquivos do Linux. O Apache só pode servir arquivos que ele tenha permissão para percorrer e ler.
Altere as permissões do seu diretório pessoal:
chmod 711 /home/labex
711(rwx--x--x) dá a você controle total e permite que outras pessoas, como o Apache, percorram o diretório (execução), mas não listem seu conteúdo (leitura).
Essa diferença entre leitura e execução em diretórios é sutil, mas importante. A execução em um diretório significa "você pode entrar nele ou percorrê-lo", enquanto a leitura significa "você pode listar seu conteúdo".
Verifique as permissões:
ls -ld /home/labex
Você deverá ver permissões terminando em x, indicando que a navegação pelo diretório está permitida.
Reinicie o serviço
Depois de ativar um módulo ou alterar uma configuração, você precisa reiniciar o Apache para que as alterações entrem em vigor.
Reinicie o serviço do Apache:
sudo service apache2 restart
Verifique se o Apache foi reiniciado com sucesso:
sudo service apache2 status
O status deverá ser active (running).
Verifique a configuração
Agora que tudo está configurado, vamos testar sua página web pessoal.
O formato da URL é http://server_address/~username/. Como estamos no próprio servidor, usaremos localhost.
Use curl para buscar a página:
curl http://localhost/~labex/
Você deverá ver o conteúdo HTML criado:
<h1>My Personal Page</h1>
<p>Welcome to the labex user directory.</p>
Se você receber um erro 403 Forbidden, verifique novamente as permissões do seu diretório pessoal (/home/labex) e do diretório public_html.
Resumo
Neste laboratório, você configurou diretórios web pessoais com sucesso. Você aprendeu a:
- Ativar o módulo
userdirdo Apache. - Criar e preencher o diretório
public_html. - Configurar as permissões do diretório para permitir o acesso do Apache e manter a segurança.
- Verificar a configuração acessando a URL específica do usuário.
Esse recurso é amplamente usado em ambientes educacionais e de hospedagem compartilhada para oferecer aos usuários seu próprio espaço web.



