
Tenía mi sistema Ubuntu 15.10 funcionando bien y las actualizaciones de Wordpress se realizaron a través de ssh. Pero cuando actualicé Ubuntu a 16.04, el cambio a php7.0 interrumpió las actualizaciones de Wordpress. Al principio me solicitaba credenciales de inicio de sesión FTP hasta que instalé php-ssh2 (que advierte que se basa en una instantánea de git). Ahora, cuando intento actualizar un complemento, dice
An error occurred while updating WP to Twitter: Unable to locate WordPress Content directory (wp-content).
Y en /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 falta un paquete, un elemento de configuración o qué?
Respuesta1
Yo tuve el mismo problema. Esto parece ser un error en php-ssh2 (del repositorio de Ubuntu).
Después de eliminar php-ssh2 e instalar una versión más nueva con pecl (pecl install ssh2-1.0), el problema se resolvió.
Envié un informe de error: https://bugs.launchpad.net/ubuntu/+source/php-ssh2/+bug/1617294
Respuesta2
La instalación de la extensión pecl no funcionó para mí (quién sabe por qué) pero encontré una alternativa:
Acabo de subir este complemento a través de scp a mi VPS y resolvió el problema:https://wordpress.org/plugins/ssh-sftp-updater-support/
Respuesta3
En mi caso nada de lo anterior funcionó, sin embargo,un parche de ralphmen el código PHP solucionó el problema de actualización a través de ssh2 para WordPress tanto en Ubuntu 14.04 como en 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, '/' );
}
/**
No olvide volver a aplicar este parche después de la actualización hasta que llegue una solución final a la versión de WordPress.
Respuesta4
En mi caso, solo ayudó la instalación de la versión 1.1.2 lib...
pecl install ssh2-1.1.2
- PHP 7.0.22-0ubuntu0.16.04.1
- Apache/2.4.18