Changer le umask pour php-fpm sur Ubuntu

Bonjour,

Ça faisait un moment que je n’avais pas écrit, faute de temps. J’ai précédemment écrit un article concernant la gestion des permissions de l’utilisateur www-data dans un projet web. Et bien dans la pratique cela s’est avéré incomplet.

En effet, le service php-fpm que j’utilise pour mon serveur local est susceptible de créer des fichiers, par exemple des traces applicatives (ou fichiers de logs). Or, je ne sais pas exactement pour quelle raison mais il va parfaitement ignorer les droits mis en place dans le répertoire de projet et créer des fichiers en lecture/modification pour le seul utilisateur www-data  et non plus le groupe. D’où l’idée de modifier le umask du service php-fpm.

La solution si vous utilisez Ubuntu ou dérivés (en fait, toute distribution utilisant le service upstart pour gérer le démarrage et l’arrêt des services du système) est de modifier le fichier /etc/init/php5-fpm.conf en ajoutant une ligne umask 0002.

Chez moi, cela donne :

# php5-fpm - The PHP FastCGI Process Managerdescription "The PHP FastCGI Process Manager"author "Ondřej Surý <ondrej@debian.org>"

start on runlevel [2345]
stop on runlevel [016]

# Precise upstart does not support reload signal, and thus rejects the
# job. We'd rather start the daemon, instead of forcing users to
# reboot https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1272788
#
# reload signal USR2

# Permet lecture et modification des fichiers par l'utilisateur ET le groupe www-data
umask 0002

pre-start exec /usr/lib/php5/php5-fpm-checkconf

respawn
exec /usr/sbin/php5-fpm --nodaemonize --fpm-config /etc/php5/fpm/php-fpm.conf

Il n’y a plus qu’à redémarrer le service php5-fpm :

sudo service php5-fpm restart

Vous trouverez cela d’autant plus pratique si vous utilisez le module Doctrine avec Zend Framework 2. En effet, doctrine ayant des commandes (ce n’est pas le seul) de mise à jour de la base de données de votre projet, vous les exécuterez en tant qu’utilisateur système et non www-data. Avec cette configration, il suffit d’ajouter votre utilisateur au groupe www-data pour avoir accès en lecture/écriture sur tout votre projet.

Vous n’aurez plus de « permission denied » lors de l’exécution des commandes.

Source : http://stackoverflow.com/questions/21248904/how-to-trace-where-php5-fpm-umask-settings-are-coming-from-on-ubuntu

Vous aimerez aussi...

Laisser un commentaire