web-dev-qa-db-fra.com

Activer les installations de plug-in sans FTP avec les utilisateurs du même groupe que Nginx/PHP-fpm

Je viens d'installer un VPS et j'ai installé tout ce dont j'avais besoin et il fonctionne bien. Le problème est que je veux qu'il puisse se mettre à jour automatiquement et me permettre d'installer des plugins sans ftp. Ceci est ma configuration:

  1. J'ai créé un nouvel utilisateur et un groupe nommé: "wordpress"
  2. Nginx et PHP-FPM utilisent tous deux "wordpress" en tant qu'utilisateur et groupe.
  3. J'ai ajouté mon propre compte ssh au groupe "wordpress". Disons que mon nom d'utilisateur est "utilisateur".
  4. J'ai changé la propriété des fichiers pour l'utilisateur "utilisateur" et le groupe "wordpress", y compris les autorisations appropriées (775 pour les dossiers et 664 pour les fichiers, je vais essayer 755/644 plus tard).
  5. Groupe de dossiers modifié (chgrp -R) en "wordpress". J'ai également effectué "chmod g + s" sur le dossier afin que les nouveaux fichiers appartiennent au groupe "wordpress".

Avec tout ce qui précède, je ne peux toujours pas installer un nouveau plugin (et probablement des thèmes ou une mise à jour), mais si je change le propriétaire des fichiers en "wordpress", tout va bien. N’est-il pas possible que l’utilisateur soit propriétaire des fichiers; si je les télécharge avec sftp, je n’ai pas à chown.

TL; DR
Est-il possible d'avoir des fichiers WordPress appartenant à un utilisateur qui se trouve dans le même groupe que le groupe qui exécute nginx/php-fpm tout en pouvant installer des plugins?

modifier:
Plus d'informations:
nginx.conf en haut contient user wordpress wordpress et pool.d/www.conf contient 2 lignes avec user = ilyesnlgroup = ilyesnl. J'ai également confirmé que les deux processus étaient exécutés par l'utilisateur wordpress.

1
Ilyes512

WordPress vérifie spécifiquement que le propriétaire du fichier des fichiers qu'il crée est identique à la valeur renvoyée par getmyuid .

Ce qui signifie que s'il crée des fichiers avec un propriétaire différent de celui des fichiers WordPress eux-mêmes, il n'utilisera pas le mode "direct".

Le même groupe ne suffit pas. Les fichiers écrits par WordPress doivent avoir les mêmes droits de propriété que les fichiers WordPress eux-mêmes, sinon, ils ne le feront pas et essayeront plutôt d'autres méthodes, telles que les autorisations FTP. Cela signifie que le processus PHP doit être exécuté par le même utilisateur que celui qui possède les fichiers WordPress.

Donc, si votre PHP est exécuté en tant que "wordpress" mais que les fichiers appartiennent à "utilisateur", vous obtenez le contenu FTP à la place.

Le test pour cela est dans la fonction get_filesystem_method().

1
Otto