Qual versão do RedHat você instalou? No RedHat 6.x é bastante simples:
1) vamos supor que eu tenha um usuário ec2-user
criado com o diretório home /home/ec2-user
2) crie um diretório /home/ec2-user/public_html
e verifique se o diretório /home/ec2-user
e /home/ec2-user/public_html
definiu permissões pelo menos 0711 (bit executável definido em outros meios que apache
usuário sob o qual o servidor web apache2 está em execução terá permissão para entrar nesses diretórios). Além disso, qualquer conteúdo desse diretório deve ser legível pelo usuário apache
.
3) habilite o módulo UserDir
na configuração do servidor web apache2 que está disponível no arquivo /etc/httpd/conf/httpd.conf
. Comente a linha UserDir disabled
e descomente a linha UserDir public_html
:
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
#UserDir disabled
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir public_html
</IfModule>
4) teste a configuração do servidor web apache2 com httpd -t
, ele deve retornar Syntax OK
caso contrário algo deu errado
5) reinicie o servidor web apache2 com service httpd restart
e, opcionalmente, ative o serviço com chkconfig httpd on
no boot
6) finalmente, se você tiver o selinux habilitado no modo enforcing
- você pode verificar com sestatus
- você tem que executar este comando setsebool -P httpd_read_user_content=on
para permitir que o servidor web apache2 leia o conteúdo do usuário
7) teste, por exemplo da execução do servidor w3m http://localhost/~ec2-user
, se houver algum erro, eles devem ser registrados no arquivo de log /var/log/httpd/error_log