Mon système Ubuntu 15.10 fonctionnait parfaitement et Wordpress mises à jour survenues sous ssh. Mais quand j'ai mis à jour Ubuntu vers 16.04, le passage à php7.0 a cassé Wordpress mises à jour. Au début, il demandait des identifiants de connexion FTP jusqu'à l'installation de php-ssh2 (ce qui indique qu'elle est basée sur un instantané git). Maintenant, quand j'essaye de mettre à jour un plugin, il dit
An error occurred while updating WP to Twitter: Unable to locate WordPress Content directory (wp-content).
Et dans /var/log/Apache2/error.log:
[Sun Jun 12 11:01:10.969931 2016] [:error] [pid 5545] [client 192.168.1.11:65278] PHP Warning: file_put_contents(): Unable to open ssh2.sftp://Resource id #81/.maintenance on remote Host in /home/blog/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php on line 252, referer: http://xxxx.com/wp-admin/update-core.php?action=do-plugin-upgrade
[Sun Jun 12 11:01:10.970772 2016] [:error] [pid 5545] [client 192.168.1.11:65278] PHP Warning: file_put_contents(ssh2.sftp://Resource id #81/.maintenance): failed to open stream: operation failed in /home/blog/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php on line 252, referer: http://xxxx.com/wp-admin/update-core.php?action=do-plugin-upgrade
Me manque-t-il un paquet, ou un élément de configuration, ou quoi?
J'ai eu le même problème. Cela semble être un bogue dans php-ssh2 (du repo Ubuntu).
Après avoir supprimé php-ssh2 et installé une version plus récente avec pecl (pecl install ssh2-1.0), le problème a été résolu.
J'ai soumis un rapport de bogue: https://bugs.launchpad.net/ubuntu/+source/php-ssh2/+bug/1617294
L'installation de l'extension pecl n'a pas fonctionné pour moi (qui sait pourquoi) mais j'ai trouvé une alternative:
Je viens de télécharger ce plugin via scp sur mon VPS et le problème a été résolu: https://wordpress.org/plugins/ssh-sftp-updater-support/
Dans mon cas, rien de ce qui précède ne fonctionnait cependant, n correctif de ralphm dans le code PHP a corrigé le problème de mise à jour via SSH2 pour WordPress sur Ubuntu 14.04 et Ubuntu 16.04 pour moi:
--- a/wp-admin/includes/class-wp-filesystem-ssh2.php
+++ b/wp-admin/includes/class-wp-filesystem-ssh2.php
@@ -185,7 +185,7 @@
if ( '/' === $path ) {
$path = '/./';
}
- return 'ssh2.sftp://' . $this->sftp_link . '/' . ltrim( $path, '/' );
+ return 'ssh2.sftp://' . intval($this->sftp_link) . '/' . ltrim( $path, '/' );
}
/**
N'oubliez pas de réappliquer ce correctif après la mise à jour jusqu'à ce qu'un correctif final parvienne à la version WordPress.
Dans mon cas, seule l'installation de la version 1.1.2 de lib a aidé ...pecl install ssh2-1.1.2