Régler un problème d'erreurs '403 forbidden' nginx
- Unix
Au moment du redémarrage de la SheevaBoite, j’ai eu quelques petits soucis pour faire remarcher le blog. Je ne sais pas pour quelle raison, mais je me retrouvais systématiquement redirigé vers une page d’erreur 403 de nginx.
Malheureusement, ce problème qui paraissait évident à régler m’a pris bien plus de temps que je ne le pensais… Après quelques minutes de recherche sur Google je suis tombé sur la solution qui était très simple…
Lorsque l’on obtient des erreurs 403 avec un site internet, cela veut dire qu’il y a un problème avec les autorisations dans la très grande majorité des cas.
En allant regarder dans les logs d’erreurs, je suis tombé sur d’innombrables messages indiquant une permission refusée :
*1 "/var/www/xxx/yyy/index.html" is forbidden (13: Permission denied)
*2 open() "/var/www/xxx/yyy/favicon.ico" failed (13: Permission denied)
Cela a confirmé ma première impression, une erreur sur les droits. Mais après avoir vérifié les autorisations et le propriétaire des fichiers dans mon arborescence web avec chmod et chown, mais cela n’a pas résolu mon problème.
En fait, il y avait bien un problème de droit pas comme je l’imaginais. Avec nginx, il faut que l’utilisateur indiqué dans le fichier de configuration dispose de droits suffisants sur le répertoire parent de l’arborescence web.
Donc, si vous avez installé votre racine web dans le répertoire /var/www/monsite, alors il faut vérifier que le répertoire /var/www soit la propriété de www-data avec des autorisations suffisantes
$> chown www-data:www-data /var/www
$> chmod 744 /var/www
Une fois la modification des droits faites sur le dossier parent, nginx retourne comme une petite horloge.