Régler php-fpm

Bonjour,

Il y a quelques années, j’utilisais suexec pour qu’apache gère php en tant qu’utilisateur local. Cette solution ne marche que sous certaines conditions, et cgi n’en fait pas partie.

Quand j’ai mis php en fast-cgi afin d’en utiliser plusieurs versions, la création et modification de fichiers via php est devenu problématique.

Il y a plusieurs solutions à ce problème.

  • chmod 777
  • mount bind avec changement d’utilisateur
  • acl

Celle que j’ai retenu, c’est de régler php-fpm pour changer l’uid et gid du site.

Par défaut c’est www-data qui exécute les pages du site. Pour changer celà, on va regarder pas a pas ce qu’il faut faire.

Il faut avoir php en fast-cgi.

Je donne ci-dessous un exemple pour php7.2, mais on peut facilement adapter et faire fonctionner le truc pour php5 ou 7.0.

On arrete le service php-fpm

sudo /etc/init.d/php7.2-fpm stop

On règle certaines variables

site=www.symfony.loc
repertoire=/home/brahim/symfony/www
utilisateur=brahim
groupe=brahim
sudo /etc/init.d/php7.2-fpm stop
sudo cp /etc/php/7.2/fpm/pool.d/www.conf  /etc/php/7.2/fpm/pool.d/${site}.conf

On copie et modifie le fichier pool fpm

site=www.symfony.loc repertoire=/home/brahim/symfony/www utilisateur=brahim groupe=brahim sudo /etc/init.d/php7.2-fpm stop sudo cp /etc/php/7.2/fpm/pool.d/www.conf /etc/php/7.2/fpm/pool.d/${site}.conf

On modifie le fichier fraîchement copié

sudo nano -w /etc/php/7.2/fpm/pool.d/${site}.conf

Il faut remplacer :

  • [www] -> [www.symfony.loc]
  • user = www-data -> user = brahim
  • group = www-data -> group = brahim
  • listen = /run/php/php7.2-fpm.sock -> listen = /run/php/php7.2-www.symfony.loc.sock

Il faut adapter les changements en fonction du site.

Enfin, on lance le service

sudo /etc/init.d/php7.2-fpm start

Voilà, le site tournera sous les droits de brahim:brahim.

Plus besoin de changer via chmod ou autre.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *