Article publié le mercredi 19 octobre 2022
revu le mardi 17 janvier 2023
Avertissement
La mise à jour consiste à passer, par exemple, de la version 8.4.2 de Drupal à la version 8.43 ou plus, mais non le passage d’une version majeure de Drupal vers la suivante. Si vous passez de Drupal 8 à Drupal 9, il ne s’agit pas d’une mise à jour mais d’une migration !
Étapes de la mise à jour du coeur de Drupal
- Rapatrier et sauvegarder tous les fichiers en FTP.
- Sauvegarder et rapatrier la base de donnée.
- Mettre le site en mode maintenance.
- Remettre éventuellement « Bartik » comme thème par défaut.
- Télédécharger la dernière version de Drupal 9 et décompressez l’archive.
- Transférer les dossiers « core » et « vendor » en écrasant ceux de l’ancienne version. Par précaution, vous pouvez renommer ces derniers et les détruire à la fin de l’opération, quand la mise-à-jour sera réussie.
- Transférer les fichiers « autoload.php, composer.json, composer.lock, example.gitignore, index.php, install.txt, licence.txt, readme.txt, robots.txt, update.php et web.config » en écrasant ceux de l’ancienne version.
- Modifier si besoin le fichier « settings.php »
- Transférer l’ensemble des fichiers invisibles comme « .htaccess »
- NE PAS DÉTRUIRE ni remplacer vos répertoires originaux « modules », « profiles », « sites » et « themes ». Au contraire, sortez-les ou supprimez-les de l’ensemble des fichiers de la nouvelle version, ils ne seront pas utilisés.
- Lancer la mise à jour de la base de donnée en appelant le script « update.php »
http://www.nomdedomaine.ext/update.php
ou nomdedomaine.ext est votre URL de base. - Si l’accès à update.php est interdit, modifiez la ligne du fichier « settings.php » ainsi :
$settings['update_free_access'] = TRUE;
Vous replacerez cette directive à FALSE après la mise à jour. - Drupal vous propose alors d’afficher la page d’accueil publique ou celle de la zone d’administration.
- Choisir la zone d’administration et vérifier sur le rapport de mises à jour que la nouvelle version est bien prise en compte.
- Remettre le site en ligne.
En cas de plantage de la mise à jour
Si le message d’erreur est :
preg_match() : JIT compilation failed : no more memory ...
Mettre à zéro dans le fichier PHP.INI la directive PCRE : pcre.jit=0
Vérifier aussi les entêtes SSL
# Really Simple SSL
Header always set Strict-Transport-Security : "max-age=31536000" env=HTTPS
Header always set Content-Security-Policy "upgrade-insecure-requests"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1 ; mode=block"
Header always set Expect-CT "max-age=7776000, enforce"
Header always set Referrer-Policy : "no-referrer-when-downgrade"
Header always set X-Frame-Options "SAMEORIGIN"
# End Really Simple SSL
Un peu d’humour quant à la courbe d’apprentissage de Drupal