Suponiendo que ya instaló Apache, haga lo siguiente:
sudo a2enmod userdir
sudo service apache2 reload
El primer comando habilita el mod apache userdir, que hace exactamente lo que desea. El segundo recarga las configuraciones de apache para que comience a usar la nueva configuración.
Para instalar apache2:
sudo apt-get install apache2
Por supuesto, también deberá asegurarse de que los permisos en su carpeta public_html permitan que el usuario de www-data vea los archivos allí; 755 generalmente funciona bien. Para hacer esto:
mkdir ~/public_html
chmod -R 755 ~/public_html
Esto pasará recursivamente (-R) a través de su public_html y establecerá los permisos en 755 (propietario rwx, y tanto el grupo como otros r-x, r-x).
Las otras respuestas están en el camino correcto con mod_userdir
, pero usar eso le dará a su sitio web la URL base http://www.yourdomain.com/~username/
- por ejemplo, un archivo /home/username/public_html/index.html
sería accesible como http://www.yourdomain.com/~username/index.html
. Si desea que sus archivos sean accesibles desde la raíz del dominio, como http://www.yourdomain.com/index.html
por ejemplo, deberá colocar la directiva
DocumentRoot /home/username/public_html
en el archivo de configuración de Apache.
Debe usar mod_userdir para Apache; de lo contrario, debe configurar enlaces simbólicos desde /var/www/
o donde sea.
Su problema de permisos se debe a que Apache no tiene acceso de lectura a sus archivos. Debe permitir el acceso de lectura a www-data
(o cualquiera que sea el usuario; específico de la distribución).