У меня была своя работающая просто великолепно система Ubuntu 15.10, и обновления Wordpress произошли по ssh. Но когда я обновил Ubuntu до 16,04, переключатель к php7.0 повредил обновления Wordpress. Сначала это запрашивало данные для входа в систему FTP, пока я не установил php-ssh2 (который предостерегает, что это основано на снимке мерзавца). Теперь, когда я пытаюсь обновить плагин, говорит он
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
Я пропускаю пакет или элемент конфигурации, или что?
У меня была та же проблема. Это, кажется, ошибка в php-ssh2 (из Ubuntu repo).
После удаления php-ssh2 и установки более новой версии с pecl (pecl устанавливают ssh2-1.0), была решена проблема.
Я отправил отчет об ошибках: https://bugs.launchpad.net/ubuntu / + source/php-ssh2 / + ошибка/1617294
Установка pecl расширения не сделала работавший для меня (Кто знает, почему), но я нашел альтернативу:
Я просто загрузил этот Плагин через scp к моему VPS, и он решил проблему: https://wordpress.org/plugins/ssh-sftp-updater-support/
В моем случае, только Устанавливающем версию 1.1.2 lib, помогается...
pecl install ssh2-1.1.2
В моем случае ни одно из вышеупомянутого не работало, однако, патч ralphm в коде PHP зафиксировал update-via-ssh2-problem для 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.