Je ne pense pas que ce soit un doublon, même si j'ai déjà vu des questions similaires.
J'ai ajouté mon utilisateur principal SSH/FTP et l'utilisateur nobody
à un groupe appelé webserver
, puis j'ai exécuté un chown -R .webserver /var/www
afin que FTP et Apache puissent écrire dans le système de fichiers.
Je sais que PHP peut écrire sur le serveur. Je peux télécharger une image à l'aide de la médiathèque. Cependant, lorsque je vais installer un plug-in, il me demande mes informations d'identification FTP.
Si j'ajoute define('FS_METHOD', 'direct');
à wp-config.php, cela disparaît et les plugins s'installent sans problème.
Pourquoi cela arriverait-il, cependant? Selon le Codex, la méthode préférée est directe et il est capable de manipuler directement le système de fichiers. Alors, qu'est-ce qui en ferait une invite pour FTP à la place?
Merci!
MODIFIER:
J'ai jeté un coup d'œil à la source pour savoir comment elle détermine la méthode de système de fichiers à utiliser (wp-admin/includes/file.php
, ligne 933) et j'ai compris qu'elle pouvait créer un fichier de test, mais que le propriétaire ne correspond pas à l'UID du processeur. En examinant le manuel PHP pour getmyuid()
et fileowner($file)
, il semble qu'au lieu d'utiliser getmyuid()
, il devrait utiliser posix_getuid()
. Avez-vous une idée de la raison pour laquelle les développeurs utiliseraient l'ancien?
EDIT 2 :
Noté dans le suivi des bogues dans WordPress: https://core.trac.wordpress.org/ticket/10205
Posix est une extension PHP plutôt qu'une partie de PHP core. WordPress essaie de minimiser l'utilisation d'extensions autant que possible dans son noyau. Dans le cas spécifique de Posix one, il a un défaut très important de ne pas être disponible sur la plate-forme Windows.