Você precisa ativar o módulo userdir
para o apache
sudo a2enmod userdir
E reinicie o apache ( sudo service apache2 restart
)
Se você precisar usar o php também dentro dos diretórios do usuário:
sudo apt-get install php5
sudo a2enmod php5
Abra /etc/apache2/mods-available/php5.conf
e remova / comente as seguintes linhas:
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>
Depois disso, tudo o que você colocar em ~/public_html
estará automaticamente disponível em http://example.com/~username
.
Verifique se você está ciente dos problemas de segurança envolvidos antes de fazer isso (especialmente a parte do PHP)
Fonte: Wiki do Ubuntu