En supposant que vous avez déjà installé apache, procédez comme suit :
sudo a2enmod userdir
sudo service apache2 reload
La première commande active le mod apache userdir, qui fait exactement ce que vous voulez. Le second recharge les configurations apache pour qu'il commence à utiliser la nouvelle configuration.
Pour installer apache2 :
sudo apt-get install apache2
Bien sûr, vous devrez également vous assurer que les autorisations sur votre dossier public_html permettent à l'utilisateur www-data de voir les fichiers qu'il contient - 755 fonctionne généralement bien. Pour ce faire :
mkdir ~/public_html
chmod -R 755 ~/public_html
Cela passera de manière récursive (-R) par votre public_html et définira les autorisations sur 755 (propriétaire rwx, et groupe et autre r-x, r-x).
Les autres réponses sont sur la bonne voie avec mod_userdir
, mais l'utiliser donnera à votre site Web l'URL de base http://www.yourdomain.com/~username/
- par exemple, un fichier /home/username/public_html/index.html
serait accessible en tant que http://www.yourdomain.com/~username/index.html
. Si vous souhaitez que vos fichiers soient accessibles sous la racine du domaine, comme http://www.yourdomain.com/index.html
par exemple, alors vous devrez mettre la directive
DocumentRoot /home/username/public_html
dans le fichier de configuration d'Apache.
Vous devez utiliser mod_userdir pour Apache, sinon vous devez configurer des liens symboliques à partir de /var/www/
ou n'importe où.
Votre problème d'autorisations est dû au fait qu'Apache n'a pas accès en lecture à vos fichiers. Vous devez autoriser l'accès en lecture à www-data
(ou quel que soit l'utilisateur ; spécifique à la distribution).