Cuando terminamos un proyecto web con Drupal y lo publicamos, invariablemente con el tiempo tengras que actualizar Drupal 8 para tener las últimas actualizaciones de seguridad. Hay dos tipos de actualizaciones principalmente: actualizaciones de módulos y actualizaciones del Core de Drupal.
¿Cómo puedo saber si mi Drupal necesita una actualización del Core? Hay dos formas de saberlo, la más fácil es cuando el mismo Drupal nos muestra una notificación o una advertencia diciéndonos que "Hay una actualización de seguridad disponible para su versión de drupal".
Estas notificaciones se mostrarán siempre y cuando está activado el módulo update manager.
La segunda opción para ver si nuestro Drupal necesita actualizaciones es comparar la versión que sale en el informe de estado de Drupal contra la versión más reciente publicada en la página de drupal.org.
Lo que voy a explicar en este artículo en específico va a ser el cómo realizar la actualización del Core de Drupal 8.
Antes de iniciar con el proceso de actualización, es indispensable crear un respaldo de nuestro Dupal.
Para realizar la actualización del Core de Drupal es necesario escoger el mejor horario posible para realizarlo, esto lo puede saber viendo las analíticas de Google Analytics. Viendo las estadísticas, busca el mejor horario donde no tengas tantas visitas para afectar lo menos posible el tráfico de tu web.
Paso 1: Activar el modo de mantenimiento
Antes de actualizar Drupal 8 en Español es indispensable pasar el sitio a modo de mantenimiento, este paso es muy importante para mantener la integridad de los datos en el caso de que haya otras personas además de nosotros que pueden estar capturando o agregando información al sitio.
Para pasar a modo de mantenimiento debemos ser administradores del sitio e ir a las opciones de configuración, en esta página veremos varios grupos de opciones pero la que nos interesa es una que se llama Desarrollo, en este grupo veremos la opción modo de mantenimiento a la cual tendremos que darle clic.
Se recargará la pantalla y a continuación veremos dos opciones, la primera es un checkbox y un área de texto. Vamos a activar el checkbox y personalizaremos el contenido del área de texto si así es requerido. Para finalizar con este paso presiona el botón guardar configuración.
Posteriormente se mostrará una notificación indicando que se guardaron los cambios.
Al visitar nuestra página principal, Drupal nos indicará que estamos en modo de mantenimiento.
Paso 2: Vaciar caches
Ya que estamos en modo de mantenimiento, ahora necesitamos limpiar la caché o borrar la caché. Este paso podría ser algo extraño, pero a mi experiencia he podido comprobar que al limpiar la caché antes de realizar algún proceso importante en el sitio, me ayuda a prevenir posibles errores o complicaciones.
Y para realizar esto es necesario ir a la opción de Configuración y busca el grupo de opciones Desarrollo y haz clic en Rendimiento.
Al recargar de la página haz clic en el botón vaciar todas las cachés.
En este punto tienes que ser paciente puesto que el vaciado puede llegar a tardar varios segundos pero puedes darte cuenta cuando el proceso ha finalizado porque la página se recargará y te mostrará un aviso indicando que las caches fueron vaciadas.
Paso 3: Descargar la última versión de Drupal 8
Ahora, tenemos que ir a la página oficial de drupal que es https://www.drupal.org/ y hacer clic en la opción Download & Extend que está dentro de Build.
A continuación haremos clic en la última versión disponible de Drupal 8.
En esta última página tenemos las dos opciones de descarga: tar.gz y zip. Las dos opciones funcionan perfectamente pero si estás usando Windows te recomiendo la opción zip.
Paso 4: Eliminar archivos y carpetas de la versión anterior
Este paso es muy importante porque no queremos eliminar archivos y carpetas incorrectas. Hay que tener mucho cuidado.
He revisado otros artículos similares que recomiendan eliminar todos los archivos y carpetas de nuestro drupal a excepción de algunas carpetas. En esto yo no estoy de acuerdo porque podemos tener algunos archivos o carpetas externos a drupal que forman parte de nuestro proyecto y que no deben ser eliminados.
Lo que yo prefiero hacer es Descargar el drupal en su última versión y extraer los archivos en una carpeta, de esta forma yo puedo ver y analizar los archivos y directorios que contiene la última versión y tomar la decisión de qué archivos son los que tengo que eliminar. A continuación explicó el proceso.
Para este caso voy a actualizar Drupal 8.5.4 a Drupal 8.5.6. Esta última versión de drupal al descomprimirla podemos ver 6 carpetas y 18 archivos.
En la mayoría de los casos puedes eliminar estos 18 archivos de tu servidor web siempre y cuando no los hayas personalizado o modificado, es decir, en el caso de los archivos .htaccess y robots.txt, pudieron haber sido modificados y es necesario identificar esos cambios y replicar los en los nuevos archivos de la nueva versión de drupal. Estos casos pueden ser raros pero siempre hay que tenerlos en cuenta.
Ahora es el turno de analizar las carpetas de esta nueva versión de Drupal. Como ya te había comentado, en este caso son 6 carpetas:
- La primera se llama core y es donde se encuentra el Core de Drupal.
- La segunda carpeta se llama modules, y es en donde se instalan los módulos adicionales a drupal.
- La tercera carpeta es profiles, y es en donde se define los perfiles de instalación.
- La cuarta es site, y es En dónde se encuentran los archivos de configuración de nuestro sitio y todos los archivos del mismo cómo son las imágenes de nuestros contenidos.
- La quinta es la carpeta de themes. esta almacena los temas instalados de nuestro grupo.
- Por último tenemos la carpeta vendor, esa carpeta almacén a las librerías de terceros.
De las 6 carpetas, 3 están vacías (modules, profiles y themes) y no es necesario subirlas al servidor, por lo tanto esas carpetas no los vamos a eliminar.
La carpeta site al contener los archivos y configuraciones de nuestro sitio tampoco la vamos a eliminar.
Por lo tanto, sólo vamos a eliminar del servidor las carpetas core y vendor.
En la siguiente imagen te seleccionó las carpetas y archivos que tienes que eliminar del servidor.
El resultado tiene que ser el siguiente:
Paso 5: Subir los archivos por FTP
Probablemente para eliminar los archivos del servidor utilizaste el gestor de archivos del Hosting. Si usas este mismo gestor para subir los nuevos archivos y carpetas, probablemente se te dificulte porque no va a tener la opción de Drag and Drop para la carga de los archivos. Para que este proceso sea más fácil y rápido, te recomiendo que uses un cliente FTP con FileZilla.
Al terminar de subir los archivos al servidor, debes de tener algo similar a la siguiente imagen
Paso 6: Verificar que funciona nuestro sitio
Ya que tenemos cargado los archivos del nuevo Core, vamos a verificar que todo funciona a la perfección. Lo primero es entrar a la página principal de nuestro sitio y vamos a verificar que se cargue. Si todo lo hicimos bien Podemos observar que nuestra página se carga correctamente, de lo contrario, es necesario hacer una restauración de nuestro sitio y volver a iniciar de nuevo el proceso de actualización.
En nuestra página de inicio podemos ver un pequeño detalle, Drupal nos está notificando que se encuentra en modo de mantenimiento. Pero aún no es el momento de que nuestro sitio está en línea.
Antes de continuar con el resto del proceso de actualización, hay que ir al Informe de estado de Drupal para verificar la Versión actual. Para esta guía podemos ver como tu pasamos de la versión 8.5.4 a la 8.5.6.
Paso 7: Ejecutar el script de actualización de Drupal 8
Si alguna vez has actualizado un módulo de Drupal, habrás visto que después de descargar los nuevos archivos de los módulos actualizados se inició un proceso de actualización de la base de datos.
Como el proceso de actualización del Core se hizo manual, tenemos que ejecutar el script para actualizar la base de datos a la nueva versión de drupal. Ejecuta el archivo update.php que está en la carpeta raíz del sitio http://mi.sitio.web/update.php y presiona el botón de continuar.
En la siguiente página, Drupal te mostrará un listado de actualizaciones pendientes en la base de datos. No todas las actualizaciones de Drupal requieren de una actualización en la base de datos. Al terminar, Drupal te mostrará un mensaje donde te indica que ya no hay actualizaciones pendientes.
Paso 8: Desactivar el modo de mantenimiento.
Por fin llegamos a la recta final, en este punto ya actualizamos los archivos y carpetas del Core al igual que la base de datos. Solo nos queda desactivar el modo de mantenimiento.
Podríamos entrar a la opción de configuración de Drupal y posteriormente al modo de mantenimiento en la sección de desarrollo, pero para ahorrarnos unos cuantos clics podemos entrar al enlace Volver a conectar que se encuentre en cualquier página de nuestro sitio.
Esta opción nos llevará directamente a la página de modo de mantenimiento, desactivamos el checkbox Pasar el sitio a modo de mantenimiento y guardamos la configuración para que nuestro sitio este en línea nuevamente.