web-dev-qa-db-fra.com

Mise à jour Ubuntu vers 16.04, maintenant Wordpress les mises à jour ne fonctionnent pas

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?

5
Paul Tomblin

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

8
Rick

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/

1
Snowball

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.

1
anneb

Dans mon cas, seule l'installation de la version 1.1.2 de lib a aidé ...
pecl install ssh2-1.1.2

  • PHP 7.0.22-0ubuntu0.16.04.1
  • Apache/2.4.18
0
Eugene