Question simple, mais pour une raison quelconque, je n'ai pas pu trouver la réponse exacte sur Google:
J'ai une nouvelle installation d'Ubuntu sur Slicehost et je voudrais créer un répertoire public dans mon répertoire personnel pour un site Web simple contenant un tas de fichiers HTML statiques. Comment puis-je faire cela? Est-ce juste une question de frappe mkdir public_html
et définir les autorisations, ou existe-t-il un moyen plus propre? (Je me souviens que dans le passé, j'ai eu des problèmes où chaque fois que je copiais un fichier dans mon répertoire public_html, je devais définir manuellement ses autorisations, ce qui était assez frustrant.)
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 userdir Apache, 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 qui s'y trouvent - 755 fonctionne généralement bien. Pour faire ça:
mkdir ~/public_html
chmod -R 755 ~/public_html
Cela va récursivement (-R) passer par votre public_html et définir les autorisations à 755 (propriétaire rwx, et à la fois le groupe et les autres r-x, r-x).
Les autres réponses sont sur la bonne voie avec mod_userdir
, mais son utilisation 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 Apache.
Soit dit en passant, ce type de question convient mieux aux forums Slicehost.
Vous devez utiliser mod_userdir pour Apache, sinon vous devez configurer des liens symboliques à partir de /var/www/
ou partout.
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).