web-dev-qa-db-fra.com

Comment puis-je empêcher WordPress de m'inviter à saisir les informations FTP lors d'une mise à jour?

Comment puis-je empêcher WordPress de m'inviter à saisir des informations FTP lors de mises à jour?

29
artlung

Si vous modifiez votre fichier wp-config.php, 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 pour la sécurité. Voir Éditionwp-config.php pour plus d'informations.

Vos paramètres varieront, 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);
23
artlung

Vérifiez la propriété de votre fichier. Lorsque l'utilisateur sous lequel Apache s'exécute peut écrire dans les répertoires wordpress, le processus de mise à niveau intégré fonctionne sans ftp. Les informations d’identification FTP s’appliquent si le serveur Web ne dispose pas des privilèges appropriés sur vos fichiers, puis wordpress vous invite à fournir vos détails FTP, et tente de les utiliser pour retourner FTP sur le même serveur qu’il est sur lequel vous pouvez écrire. fichiers dont il a besoin.

12
pixeline

Il semble que non seulement WordPress vérifie si les répertoires sont inscriptibles, mais qu’il vérifie si l’utilisateur ApachePOSSÈDEles répertoires (ou au moins si l’utilisateur Apache est propriétaire du 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);
}

Donc, une solution rapide sera d’émettre cette commande et de donner la propriété de l’ensemble de l’installation de 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 davantage documenté ma solution ici: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/

5
Ardee Aram

Lors de l'optimisation d'Apache 2.4 via EasyApache4 afin d'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). Lors de la désactivation de mod_pagespeed, il ne réactivera pas mod_ruid2 automatiquement. 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 le fichier wp-config.php ou de définir (dangereusement) les autorisations de fichier sur 777. Il suffit d'activer mod_ruid2 manuellement, de redémarrer Apache pour résoudre le problème d'autorisation FTP/fichier. Wordpress et les plugins peuvent maintenant être mis à jour comme d'habitude et les médias téléchargés dans la galerie Wordpress. Cela fonctionne tout de suite.

Je viens de vérifier que lors du passage de MPM Prefork à Worker, mod_ruid2 sera désactivé. Lors du retour de Worker à Prefork, il n'activera pas mod_ruid2, ce qui entraîne le problème décrit dans ce message.

Dans les deux cas, la clé consiste à vérifier et à activer mod_ruid2.

J'espère avoir aidé.

1
itmonitor