Oferta SiteGround Black Friday

Actualizar WordPress por SSH

Aviso que este artículo no es para novatos, pues lo primero es que debes tener acceso total a tu servidor, mediante la interfaz de comandos, en este caso el shell.

Eso si, cuando pasas ese pequeño susto, que no inconveniente, se te facilita la vida sobremanera, pues todo es más rápido por SSH.

Así que, miedos fuera, si ya vimos hace tiempo como instalar WordPress por SSH, e incluso como actualizar WordPress con subversion, hoy toca actualizar WordPress por SSH, y vamos a ver un par de modos de hacerlo.

1. Actualizar WordPress por SSH

En los siguientes comandos se asume siempre que se están haciendo en el directorio de tu WordPress (miweb en el ejemplo). Así que ya dejando esto claro lo primero que haremos es descargar la última versión y extraerla, lo haremos así:

wget http://wordpress.org/latest.tar.gz
tar xfvz latest.tar.gz

A continuación borraremos los directorios ‘wp-admin‘ y ‘wp-includes‘ antiguos:

rm -rf ./wp-admin
rm -rf ./wp-includes

Para, a continuación, ir a la carpeta «wordpress» donde extrajimos la última versión de WordPress y mover todos los archivos al directorio de nuestro WordPress:

cd wordpress
mv * ../miweb/

Cuando comience el proceso el shell te preguntará si quieres sobreescribir algunos archivos y carpetas, también dentro del directorio ‘wp-content’, ahí ya tu decides lo que sobreescribes y lo que no, mi consejo de siempre ya lo sabes, ni se te ocurra con ‘wp-content.

Cuando termine el proceso salimos de la carpeta «wordpress» y borramos el directorio y el archivo ‘latest.tar.gz‘:

cd ../
rm -rf ./wordpress/
rm -f latest.tar.gz

El paso final es acceder a tu escritorio y actualizar la base de datos si te lo pide WordPress.

2. Activar SSH2 para actualizar WordPress

Una posibilidad de Wordpress que quizás no conozcas es que puedes usar SSH para actualizaciones e instalaciones de plugins y temas. Lo primero que hay que hacer es comprobar si tu alojamiento tiene la extensión SSH2 instalada en PHP o no. Para comprobarlo ejecuta el siguiente comando PHP:

var_dump( extension_loaded( 'ssh2' ) );

Si el resultado es afirmativo (true) entonces eso significa que está instalado, sino es que no, como es lógico. Si no estuviera instalado y quieres tenerlo, una de dos, pides a tu proveedor de hosting que te lo instale, o si tienes un VPS o servidor dedicado instálalo tu mismo. En este último caso el modo sería el siguiente:

Lo primero es crear una serie de claves públicas y privadas que usaremos para identificar al usuario. Para crearlas usaremos el siguiente comando en tu cliente SSH:

ssh-keygen

Te preguntará el nombre del archivo. Puedes dejarlo en blanco o poner cualquier nombre que se te ocurra. Si lo dejas en blanco los nombres de archivo serán id_rsa.pub y id_rsa. También puedes establecer aquí una contraseña para añadirle seguridad extra, o si lo prefieres dejarlo también en blanco.

A continuación toca añadir las claves necesarias al archivo authorized_keys. En nuestro ejemplo las claves SSH se crean y guardan en el directorio ‘.ssh‘, dentro del directorio raíz.

cd .ssh
cp id_rsa.pub authorized_keys

Lo siguiente es cambiar los permisos para que WordPress pueda acceder a estas claves:

cd ../
chmod 755 .ssh
chmod 644 .ssh/*

Por supuesto, tendrás que cambiar el usuario del directorio si estás ejecutando PHP como otro usuario.

Ahora que ya tenemos SSH2 configurado y en marcha tendrías que ver la siguiente pantalla cuando actualices o instales un plugin o tema:

En esta pantalla el usuario es el nombre de usuario SSH que usaste para acceder y llevar a cabo todos los comandos, y la clave es la contraseña que te pidió cuando ejecutaste el comando ssh-keygen. Si no elegiste ninguna contraseña entonces deja el campo en blanco. Si, además, no quieres tener que repetir este paso cada vez que actualices entonces añade lo siguiente al fichero wp-config.php:

define('FTP_PUBKEY','/home/user/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/user/.ssh/id_rsa');
define('FTP_USER','tuusuario');
define('FTP_PASS','tucontraseña');
define('FTP_HOST','tudominio.com');

Por supuesto, cambia las rutas por las tuyas, con especial atención a las rutas absolutas de las líneas 1 y 2, recuerda que esto es un ejemplo, no debes copiarlo y pegarlo tal cual sino adaptarlo a tus credenciales e instalación.

A partir de que guardes los cambios WordPress realizará las operaciones de transferencia de archivos en actualizaciones usando SSH.

¿Que no es para ti esto?, pues entonces puedes actualizar automáticamente WordPress al modo normal, o a lo bestia.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 2

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

7 comentarios en “Actualizar WordPress por SSH”

      1. entiendo tu punto , pero es mas complicado para los usuarios, generalmente quienes empiezan con WP buscan plugins hasta para poner adsense o hasta para cambiar el color de las fuentes. Mi punto es que es mas complicado tocar el codigo para muchos que hacer las cosas  con un clic. Me agrada la opcion, pero personalmente no la tomaria.
        saludos fer.

        1. Por eso es para avanzados, para el resto hay otras secciones, como la de Principiante, pero bueno, como es buena apreciación pongo un enlace al final para los más nuevos 😉

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio