Droits d'accès aux dossiers du projet

Environnement de test

Quand nous souhaitons juste tester wallabag, nous lançons simplement la commande php bin/console server:run --env=prod pour démarrer l'instance wallabag et tout se passe correctement car l'utilisateur qui a démarré le projet a accès naturellement au repertoire courant, tout va bien.

Environnement de production

Dès lors que nous utilisons Apache ou Nginx pour accéder à notre instance wallabag, et non plus la commande php bin/console server:run --env=prod pour la démarrer, il faut prendre garde à octroyer les bons droits aux bons dossiers afin de préserver la sécurité de l'ensemble des fichiers fournis par le projet.

Aussi, le dossier, connu sous le nom de DocumentRoot (pour apache) ou root (pour Nginx), doit être impérativement accessible par l'utilisateur de Apache ou Nginx. Le nom de cet utilisateur est généralement www-data, apache ou nobody (selon les systèmes linux utilisés).

Donc le dossier /var/www/wallabag/web doit être accessible par ce dernier. Mais cela ne suffira pas si nous nous contentons de ce dossier, et nous pourrions avoir, au mieux une page blanche en accédant à la page d'accueil du projet, au pire une erreur 500.

Cela est dû au fait qu'il faut aussi octroyer les mêmes droits d'accès au dossier /var/www/wallabag/var que ceux octroyés au dossier /var/www/wallabag/web. Ainsi, on règle le problème par la commande suivante :

chown -R www-data:www-data /var/www/wallabag/var

Il en est de même pour les dossiers suivants :

  • /var/www/wallabag/bin/
  • /var/www/wallabag/app/config/
  • /var/www/wallabag/vendor/

en tapant

chown -R www-data:www-data /var/www/wallabag/bin
chown -R www-data:www-data /var/www/wallabag/app/config
chown -R www-data:www-data /var/www/wallabag/vendor

sinon lors de la mise à jour vous finirez par rencontrer les erreurs suivantes :

Unable to write to the "bin" directory.
file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied

results matching ""

    No results matching ""