web-dev-qa-db-fra.com

Pourquoi WordPress ne prend toujours pas en charge SFTP?

Cela fait de nombreuses années maintenant avec WordPress 2, WordPress 3 et même maintenant WordPress 4, qui devrait être publié prochainement, que WordPress Publishing Platform ne prend pas en charge SFTP comme option pour télécharger des thèmes, télécharger des mises à niveau et configurer des plugins.

De nombreuses autres plates-formes telles que MovableType, ExpressionEngine et Umbraco sont également axées sur les entreprises. WordPress s’est avéré être un produit d’entreprise, mais pourquoi ne prend-il toujours pas en charge SFTP?

Cordialement

5
TheBlackBenzKid

WordPressdoesprend en charge l’établissement de connexions à l’aide de SSH (également appelé SFTP) via le système de mise à jour intégré. Il a obtenu ce support dans la version 2.7, il y a environ 6 ans. Référence: https://core.trac.wordpress.org/ticket/7690

Si vous ne le voyez pas dans l'écran "informations d'identification" normal, c'est que votre installation PHP ne dispose pas du support nécessaire pour pouvoir le faire. WordPress ne peut pas parler "ssh", mais il peut utiliser l'extension PHP "ssh2" pour le faire, si cette extension est disponible.

Il existe deux conditions préalables à l’utilisation de SSH dans WordPress.

  1. Tout d'abord, l'installation PHP doit avoir l'extension ssh2 chargée ou autrement compilée. Vous pouvez l'obtenir via pecl si vous ne l'avez pas disponible. Dans certains cas, vous devrez peut-être recompiler votre PHP ou en utiliser un personnalisé si votre hôte ne le prend pas en charge. La plupart ne le font pas, c'est pourquoi vous ne le voyez pas par défaut.

  2. Deuxièmement, la fonction stream_get_contents doit être disponible. C'est généralement le cas, mais sur certains hôtes, il peut ne pas y en avoir. Vérifiez d'abord. Le code intégré vérifie également ces deux éléments. Par conséquent, s’ils ne sont pas disponibles, la vérification échouera et vous n’obtiendrez pas l’option ssh.

Si ces deux conditions sont correctes, l'écran de connexion normale devrait automatiquement afficher de nouveaux champs. Cela inclut une option "SSH2" et des champs pour saisir des chemins d'accès à une paire de clés publique et privée.

Tout comme la méthode FTP, vous pouvez entrer cette information à chaque fois, si vous voulez, mais il est beaucoup plus facile de définir simplement des constantes dans le fichier wp-config.

Les constantes ressembleront à ceci:

define('FTP_PUBKEY','/home/user/.ssh/public-key-file');
define('FTP_PRIKEY','/home/user/.ssh/private-key-file');
define('FTP_USER','user');
define('FTP_PASS','passphrase');
define('FTP_Host','domain.com');

Pour ce faire, vous devez générer une nouvelle paire de clés ssh spécialement conçue pour WordPress. Les paires de clés publiques et privées doivent être stockées quelque part sur votre serveur pour que WordPress puisse les lire. La clé privée peut être cryptée par une phrase secrète que WordPress devra connaître. La clé publique devra être ajoutée à votre fichier "registered_keys" pour votre compte.

Avec tout cela en place, WordPress lira la clé privée et l’utilisera pour se connecter au nom d’hôte avec le nom d’utilisateur spécifié en utilisant cette clé. Ensuite, il se comportera presque comme si vous utilisiez un FTP normal, excepté via la connexion SSH.

8
Otto