Comment puis-je empêcher WordPress de me demander d'entrer des informations FTP lors des mises à jour?


29

Comment puis-je empêcher WordPress de me demander d'entrer des informations FTP lors des mises à jour?

Réponses:


23

Si vous modifiez votre wp-config.phpfichier, vous pouvez précharger ces paramètres FTP sous forme de constantes lues par WordPress. Gardez à l'esprit que sur un hôte partagé, vous devez être conscient des implications possibles en matière de sécurité. Voir Modificationwp-config.php pour plus d'informations.

Vos paramètres varient, mais ceux-ci fonctionnent pour moi et ma configuration d'hébergement. J'ai inclus certaines des constantes inutilisées, préfixées:

define('FS_METHOD', 'direct');
define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/');
define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/');
// define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
// define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'my-ftp-username');
define('FTP_PASS', 'my-ftp-password');
define('FTP_HOST', 'ftp.my-site.example.com');
// define('FTP_SSL', false);

C'est le moyen le plus simple, mais comme le dit Pixeline ci-dessous, vérifiez les autorisations de fichier. Deux des trois informations d'identification sont stockées dans la base de données, mais la troisième est écrite dans un fichier (je ne me souviens plus lequel est sur le dessus de ma tête).
John P Bloch

12

Vérifiez la propriété de votre fichier. Lorsque l'utilisateur qui exécute apache peut écrire dans les répertoires wordpress, le processus de mise à niveau intégré fonctionne simplement sans ftp. Les informations d'identification FTP sont pour si le serveur Web n'a pas les privilèges appropriés sur vos fichiers, puis wordpress vous invite à entrer vos détails FTP et tente de les utiliser pour FTP sur le même serveur sur lequel il se trouve pour pouvoir écrire le fichiers dont il a besoin.


1
Vous ne devez vraiment pas modifier la propriété du fichier sur celle du serveur Web, car cela représente un risque potentiel pour la sécurité.
Otto

... à moins qu'il ne soit mal configuré, comme c'était le cas dans mon cas :)
pixeline

5

Il semble que non seulement WordPress vérifie si les répertoires sont accessibles en écriture, mais il vérifie si l'utilisateur Apache possède les répertoires (ou au moins, si l'utilisateur Apache possède le fichier temporaire qu'il crée). Observez ces lignes de code dans /wp-admin/includes/file.php: get_filesystem_method ():

if ( $temp_handle ) {
    if ( getmyuid() == @fileowner($temp_file_name) )
        $method = 'direct';
    @fclose($temp_handle);
    @unlink($temp_file_name);
}

Ainsi, une solution rapide sera d'émettre cette commande et de donner la propriété de toute l'installation Wordpress à Apache:

sudo chown -R www-data wordpress/

Où www-data est l'utilisateur Apache, et bien sûr wordpress est votre dossier d'installation WordPress.

J'ai documenté ma solution ici: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/


Ce lien est mort maintenant. Voici une archive: web.archive.org/web/20131213005955/http://rubiks.ph/…
Sam Wilson

Quelqu'un peut-il expliquer les détails de: "$ allow_relaxed_file_ownership Facultatif. Indique si le groupe / le monde est accessible en écriture."
Sam Wilson

@Sam Wilson J'ai maintenant migré certaines de mes entrées de blog vers un compte WordPress gratuit. L'ancien domaine est mort.
Ardee Aram

1

Lors du réglage fin d'Apache 2.4 via EasyApache4 pour améliorer la vitesse de chargement du site Web sur un serveur Centos 7 PHP 7, j'avais activé mod_pagespeed. En l'activant, il désactivera automatiquement mod_ruid2 et mod_cgi (et activera les deux autres modules). Lorsque vous désactivez mod_pagespeed, il ne réactivera pas automatiquement mod_ruid2 - il réactivera uniquement mod_cgi. Sans mod_ruid2, Wordpress demandera les informations d'identification FTP.

Il n'est pas nécessaire de coder en dur wp-config.php ou de définir les autorisations de fichier (dangereusement) sur 777. Activez simplement mod_ruid2 manuellement, redémarrez Apache et le problème d'autorisation FTP / fichier est résolu. Wordpress et les plugins peuvent maintenant être mis à jour comme d'habitude et les médias téléchargés dans la galerie Wordpress. Ça marche tout de suite.

Je viens de vérifier que lors du passage de MPM Prefork à Worker, cela désactivera mod_ruid2. Lorsque vous revenez de Worker à Prefork, cela n'activera pas mod_ruid2, provoquant le problème décrit dans ce message.

Dans les deux cas, la clé est de vérifier et d'activer mod_ruid2.

J'espère avoir aidé.


-1

1) Je ne suis pas d'accord avec la réponse ci-dessus car elle est trop générique

1a) Je ne veux tout simplement pas changer la propriété de tous mes fichiers de manière récursive (comme en utilisant un fusil de chasse pour tuer un musquito). D'autant plus que cela fonctionnait parfaitement avant.

1b) Wordpress ayant la fonctionnalité "sournoise" de tout d'un coup vous demander des informations d'identification pour ftp

2) J'ai donc commencé à creuser plus profondément en utilisant son avance d'Ardee Aram. Je suis allé archiver le fichier file.php et vérifié sa propriété. Il semble que le fichier.php dépend de sa propre propriété (qui a été incorrectement définie en tant que root).

Correction: chown www file.php

REMARQUE: remplacez www par votre distribution ou vos paramètres (vous pouvez utiliser ps aux | egrep "php | http" et voir sa propriété dans la première colonne.

J'espère que cela aide quelqu'un d'autre à ne pas être frustré à ce sujet. Je ne comprends même pas pourquoi wordpress ne se "plaint" pas en premier et propose ensuite d'utiliser l'alternative FTP. Maintenant, c'est comme une "fonctionnalité" qui est soudainement introduite.


Bienvenue sur WPSE, th3penguinwhisperer. N'hésitez pas à faire le tour . Concernant «la réponse ci-dessus», les réponses peuvent changer d'ordre à tout moment à la suite des votes des gens. J'adorerais que vous modifiiez votre message pour spécifier à qui vous faites référence, donc c'est clair. Merci d'avoir ajouté vos pensées!
Tim Malone
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.