Actualización manual de WordPress: una historia de amor por FTP

En ocasiones todo puede complicarse un poquito más. Si alguna vez has trasteado con algún CMS, según dónde lo hayas instalado, podrás encontrarte con muchas o muy pocas facilidades. Si, además, debes mantener actualizado dicho CMS las pocas facilidades que encuentres siempre serán bienvenidas.

Con bastante frecuencia gestiono sitios webs con WordPress. Quizás lo haya comentado ya en alguna ocasión, es mi CMS favorito :-). Sin embargo, pese a lo mucho que me guste, tener que trabajar con él en según qué condiciones no me agrada tanto. En especial en algunos hostings (que por circunstancias varias, ha de ser así) que sólo me permiten actualizarlo por FTP. Bueno, actualizarlo… y prácticamente todo lo que necesite: instalar/actualizar/modificar cualquier tema, plugin y demás. Rompe un poco la magia y simplicidad que ofrece WordPress… pero qué le vamos a hacer, ante todo keeping WordPress. Pues bien, no sé cómo se hará dentro de unos años pero en los muchos últimos actualizar WordPress ha consistido en cambiar ficheros antiguos por nuevos. Muchos, muchos ficheros. Sí. Por suerte estos van en carpetas y, con un poco más de suerte y mucha velocidad de conexión, nuestra página de mantenimiento no estará demasiado tiempo activa. Y es que, claro, para actualizar cualquier cosa medio-seria deberemos poner nuestra página en mantenimiento…

Pasos a seguir para actualizar nuestro WordPress por FTP

1. Descargar la última versión del sitio web original de WordPress

2. Descarga/haz una copia de seguridad de las entradas y de la base de datos

3. Desactiva los plugins

4. Pon tu sitio web en mantenimiento¹

5. Descomprime el fichero de WordPress descargado en tu ordenador

6. Accede por FTP a la raíz de tu sitio web

7. Cambia el nombre de las carpetas “wp-admin” y “wp-includes” (por ejemplo, a “wp-admin_vieja”)

8. Sube el nuevo contenido del fichero descomprimido correspondiente a las carpetas “wp-admin” y “wp-includes” al FTP

9. Accede a la carpeta “wp-content” de tu FTP y añade los archivos del fichero descargado correspondiente a la carpeta “wp-content”. Ojo a esta operación, nuestro objetivo será actualizar los ficheros ya existentes con los nuevos que copiemos, no borrar lo que hay sino sobreescribirlo.

10. Hacemos esta misma operación, reemplazar ficheros, en la carpeta raíz del FTP (ficheros “config-sample.php” y demás que encontramos también en la raíz del fichero descargado)².

11. Accede al backend logueado (si bien las últimas versiones pueden no requerirlo, posiblemente accediendo a la dirección “tudominio.es/update-core.php” se cargarán todas las novedades.). Quizás te requiera actualizar la base de datos de WordPress, te lo notificará el propio sistema.

12. Aprovechando que tenemos desactivados los plugins, actualizaremos los que sean necesarios. Haremos lo correspondiente con los temas también.

Y una vez que tenemos todo actualizado, luce con otro aspecto, ¿no? 😉

Aunque, bueno, realmente ¡aún no hemos terminado! Vamos a la parte que parece más “chunga” (no lo es). Las traducciones. Si te pringas actualizando por FTP, te pringas pero hasta el cuello 😉

Siempre que me encuentro en esta situación, debo recurrir a la web de Daniel Rivas. Su solución me parece elegante, práctica y sencillamente genial. Aquí os dejo el enlace a la entrada donde cuenta cómo realizar al actualización manual de las traducciones.

Os pongo la parte clave y matizaré una cosa:

Consiste en abrir el fichero “/wp-admin/update-core.php” con un editor cualquiera y tras la línea 416, añadir esto³:

else {
print 'Descargar traducciones:<br />';
foreach ($updates as $key => $value) {
print '&bull; <a href="'.$value->package.'" target="_blank">'.$value->slug.'</a><br />';
}
}

De esta forma, veremos un listado con las traducciones disponibles y simplemente haciendo click, las descargaremos en nuestro equipo. Ahora las copiaremos al directorio “wp-content/languages/plugins” de nuestro WordPress.

Cuando nos encontramos con ese fantástico listado, podemos llegar a encontrar traducciones para plugins… o no. Es importante percatarse que si encontramos traducciones disponibles para “default” o para un tema en concreto, debemos ubicarlo en su carpeta correspondiente (si es para el sistema, será en “wp-content/languages” y si es para un tema, en su carpeta correspondiente “wp-content/languages/themes”). Puede parecer una tontería, pero estar un rato actualizando para encontrar una actualización que no hay manera de quitar puede llegar a ser desesperante.

Por último quisiera recordar una sencilla cuestión básica de seguridad: cualquier simple fichero sin actualizar, por tonto que nos parezca, a pesar de que fuese un plugin que instalamos para probar o un tema que quisimos ver cómo quedaba, cualquiera puede ser una brecha de seguridad para que se apoderen de nuestro sitio web. No olvides actualizar siempre todo 🙂


¹ Existen tres formas de poner tu sitio web en mantenimiento: modificando el fichero .htaccess, creando el fichero .maintenance o mediante plugins (posiblemente lo veamos en una futura entrada).

² De esta forma, la sobreescribir, no tendrás que volver a configurar el archivo config.php aunque, eso sí, es más que recomendable que borres el fichero config-sample.php al igual que te recomiendo que valores borrar los directorios “wp-admin” e “wp-includes” que hemos renombrado. De primeras yo no los borraría hasta comprobar que la actualización funciona correctamente. Después, por espacio e higiene (y seguridad, siempre), los borraría.

³ Aunque Daniel indica, de forma totalmente adecuada, que no es necesario borrar esta modificación dado que se perderá al volver a actualizar WordPress, sinceramente yo no la mantendría (piensa que cuando vuelvas a actualizar ese fichero se borrará pero tendrás que volver a modificarlo para actualizar las traducciones. Mejor que te familiarices con él cuánto antes 🙂 ).

Defiende tu WordPress

Dicen que una cadena es tan fuerte como su eslabón más débil. Y en los sistemas de información esto es el pan de cada día. Kevin Mitnick, uno de los más conocidos hackers, decía:

“Las organizaciones gastan millones de dólares en firewalls y dispositivos de seguridad, pero tiran el dinero porque ninguna de estas medidas cubre el eslabón más débil de la cadena de seguridad: la gente que usa y administra los ordenadores”

Aunque aún queda hacer un grandísimo esfuerzo por generar una cultura de la seguridad tanto a nivel personal como profesional es innegable pensar que, bien por la gente que usa estos sistemas de información bien por la gente que los desarrolla, éstos son vulnerables. Recordemos que un sistema de información no es más que un modelo de un sistema real que diseña, desarrolla e implementa un ingeniero a través de una metodología concreta. Y conforme pasa el tiempo los sistemas cambian, evolucionan y mantener la seguridad se vuelve una tarea compleja. Se debe principalmente a que, a pesar de que el sistema pueda seguir siendo válido (rara vez), las tecnologías y las herramientas en las que se basan también cambian, o se abandonan y dejan de desarrollarse con lo que volvemos a la misma idea: sistemas vulnerables.

Un poquito de historia

Cuando hablamos de WordPress también hacemos referencia a un sistema de información muy específico, orientado a la web y que se enmarca en los llamados CMS (Content Management System) o Sistema Gestor de Contenidos, los cuales tienen sus orígenes en la evolución de la web partiendo de la idea original de Tim Berners Bee: compartir información de forma fácil para usuarios no técnicos. Si bien esta idea original parte de webs estáticas (escribiendo el contenido en HTML) en poco tiempo se pasó a webs dinámicas (las cuales podían incluir código, volviendo a discriminar a buena parte de los usuarios que no tuvieran estos conocimientos) hasta llegar a los CMS que devolvían al usuario el poder sobre la información que quisieran compartir en la web. Los CMS en concreto conforman un sistema que gestiona la base de datos y el contenido de forma transparente para el usuario, normalmente a través de un backend intuitivo que dota de gran potencial al usuario.

WordPress no es un CMS cualquiera. Según las estadísticas entre el 24 y el 30% de las webs hacen uso de WordPress y esto es una buena noticia para los que sentimos cierta predilección por este CMS, pero también una gran responsabilidad. Como comentábamos, los sistemas son vulnerables porque los diseñan personas. Y, aunque detrás de WordPress hay muchas, muchas, muchas personas, también existen vulnerabilidades. Hace unos días accedía a una web que monté con WordPress para una asociación. Llevaba tiempo sin acceder a ella dado que otros generaban el contenido, pero yo era el administrador. Y para sorpresa mía, me encuentro con 656 publicaciones nuevas y ninguna de los creadores de contenido. Resultaba que el sitio tenía sin actualizar¹ WordPress a la última versión más plugins y temas también sin actualizar. El resultado: un desastre.

Pero no todo pueden ser malas noticias, ¡por supuesto!

WordFence para todos 😉

Desde hace algún tiempo² vengo usando un plugin para securizar algunos de mis sitios WordPress. Éste, WordFence Security,  es un plugin que contiene muchas herramientas que tienen como único fin mejorar la seguridad de WordPress. No voy a entrar al detalle sobre cómo se instala y configura, seguro que hay decenas de webs que describen a la perfección cómo configurarlo, en cualquier caso es interesante instalarlo y empezar a probar cosillas. Por ejemplo, podemos saber quién, cuándo y desde dónde se accede a nuestra plataforma. Otro ejemplo, hoy me ha llegado un mail avisando de algunas cosillas que podrían suponer vulnerabilidades en mi sitio web:

Lo que me ha permitido borrar el archivo wp-config-sample (qué vergüencita, fallo de principiante) y eliminar esos plugins que instalé hace tiempo para probarlos pero que no les doy uso alguno. Y es que administrar varios sitios webs no es algo trivial y siempre que contemos con algo que nos ayude, aunque sea un poquito, ¡es de agradecer!

Si instalas WordFence y quieres contarme tu experiencia siempre será bienvenida 🙂


¹ Recordad, no sé si fue mito o realidad, que se decía que los famosos papeles de Panamá se descubrieron por un WordPress sin actualizar 😮

² Desde principios de este año empecé a usarlo motivado por un informe de Wordfence que indicaba un aumento de los ataques de fuerza bruta a sitios web desarrollados con WordPress