Os diretórios public_html
precisam ter suas permissões como esta para que o usuário que o Apache está executando possa acessá-lo:
$ chmod -R 755 ~/public_html
ainda não funciona?
Se você olhar nos seus logs de erro do Apache, poderá ver uma linha como esta:
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /~kaiyin denied
Isso está dizendo que o Apache não tem permissões para navegar para o diretório do seu usuário (~ kaiyin) neste exemplo.
Como consertar isso?
Você precisa certificar-se de que os bits de leitura + de execução estejam configurados para um grupo do qual o Apache é membro ou que outros leiam + bits executados no diretório do usuário, para que o Apache possa acessar a pasta public_html
abaixo.
Exemplo
/home
|-- [drwxr-x---] /home/sam
/home/sam
|-- [drwxr-xr-x] /home/sam/public_html
Referências
- Como você pode criar uma pasta HTML pública em Ubuntu?