Обновил Ubuntu до 16.04, теперь обновления Wordpress не работают

Обновил Ubuntu до 16.04, теперь обновления Wordpress не работают

У меня была Ubuntu 15.10, которая работала просто отлично, и обновления Wordpress происходили через ssh. Но когда я обновил Ubuntu до 16.04, переключение на php7.0 сломало обновления Wordpress. Сначала он запрашивал учетные данные FTP, пока я не установил php-ssh2 (который предупреждает, что он основан на снимке git). Теперь, когда я пытаюсь обновить плагин, он говорит

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

И в /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

Может, мне не хватает какого-то пакета, элемента конфигурации или чего-то еще?

решение1

У меня была та же проблема. Похоже, это ошибка в php-ssh2 (из репозитория Ubuntu).

После удаления php-ssh2 и установки более новой версии с помощью pecl (pecl install ssh2-1.0) проблема была решена.

Я отправил сообщение об ошибке: https://bugs.launchpad.net/ubuntu/+source/php-ssh2/+bug/1617294

решение2

Установка расширения pecl мне не помогла (кто знает почему), но я нашел альтернативу:

Я только что загрузил этот плагин через scp на свой VPS, и это решило проблему:https://wordpress.org/plugins/ssh-sftp-updater-support/

решение3

Однако в моем случае ничего из вышеперечисленного не сработало.патч от ralphmв PHP-коде исправлена ​​проблема обновления через ssh2 для WordPress на Ubuntu 14.04 и Ubuntu 16.04 для меня:

--- 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, '/' );
    }

    /**

Не забудьте повторно применить этот патч после обновления, пока окончательное исправление не попадет в релиз WordPress.

решение4

В моем случае помогла только установка версии 1.1.2 lib...
pecl install ssh2-1.1.2

  • PHP 7.0.22-0ubuntu0.16.04.1
  • Апач/2.4.18

Связанный контент