Ubuntu atualizado para 16.04, agora as atualizações do Wordpress não funcionam

Ubuntu atualizado para 16.04, agora as atualizações do Wordpress não funcionam

Meu sistema Ubuntu 15.10 funcionou perfeitamente e as atualizações do Wordpress aconteceram por meio de ssh. Mas quando atualizei o Ubuntu para 16.04, a mudança para php7.0 interrompeu as atualizações do Wordpress. No início, ele estava solicitando credenciais de login do FTP até que eu instalei o php-ssh2 (que avisa que é baseado em um instantâneo do git). Agora, quando tento atualizar um plugin, ele diz

An error occurred while updating WP to Twitter: Unable to locate WordPress Content directory (wp-content).

E em /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

Estou faltando um pacote, ou um item de configuração, ou o quê?

Responder1

Eu tive o mesmo problema. Este parece ser um bug no php-ssh2 (do repositório Ubuntu).

Após remover o php-ssh2 e instalar uma versão mais recente com pecl (pecl install ssh2-1.0), o problema foi resolvido.

Enviei um relatório de bug: https://bugs.launchpad.net/ubuntu/+source/php-ssh2/+bug/1617294

Responder2

Instalar a extensão pecl não funcionou para mim (quem sabe por quê), mas encontrei uma alternativa:

Acabei de enviar este plugin via scp para meu VPS e ele resolveu o problema:https://wordpress.org/plugins/ssh-sftp-updater-support/

Responder3

No meu caso, nenhuma das opções acima funcionou, no entanto,um patch por Ralphmno código PHP corrigiu o problema de atualização via ssh2 para WordPress no Ubuntu 14.04 e no Ubuntu 16.04 para mim:

--- 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ão se esqueça de reaplicar este patch após a atualização até que uma correção final chegue ao lançamento do WordPress.

Responder4

No meu caso, apenas a instalação da versão 1.1.2 lib ajudou...
pecl install ssh2-1.1.2

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

informação relacionada