Supponendo che tu abbia già installato Apache, procedi come segue:
sudo a2enmod userdir
sudo service apache2 reload
Il primo comando abilita userdir apache mod, che fa esattamente quello che vuoi. Il secondo ricarica le configurazioni di Apache in modo che inizi a utilizzare la nuova configurazione.
Per installare apache2:
sudo apt-get install apache2
Ovviamente, dovrai anche assicurarti che i permessi sulla tua cartella public_html consentano all'utente www-data di vedere i file lì dentro - 755 di solito funziona bene. Per fare ciò:
mkdir ~/public_html
chmod -R 755 ~/public_html
Questo passerà ricorsivamente (-R) attraverso il tuo public_html e imposterà i permessi su 755 (proprietario rwx, e sia gruppo che altro r-x, r-x).
Le altre risposte sono sulla buona strada con mod_userdir
, ma il suo utilizzo darà al tuo sito web l'URL di base http://www.yourdomain.com/~username/
- per esempio, un file /home/username/public_html/index.html
sarebbe accessibile come http://www.yourdomain.com/~username/index.html
. Se vuoi che i tuoi file siano accessibili nella root del dominio, come http://www.yourdomain.com/index.html
ad esempio, dovrai inserire la direttiva
DocumentRoot /home/username/public_html
nel file di configurazione di Apache.
Devi usare mod_userdir per Apache, altrimenti devi impostare i collegamenti simbolici da /var/www/
o dovunque.
Il tuo problema di autorizzazioni è dovuto al fatto che Apache non ha accesso in lettura ai tuoi file. Devi consentire l'accesso in lettura a www-data
(o qualunque sia l'utente; specifico della distribuzione).