Une mise à jour Drupal est disponible pour combler une faille de sécurité.
C’est l’occasion de faire un billet pour expliquer la façon de faire une mise à jour Drupal.
J’utilise actuellement Drupal 6.3, et la version 6.4 est disponible depuis hier (et fortement recommandée !)
Quelles sont les étapes pour mettre à jour correctement et (en théorie) sans risque un ou plusieurs sites Drupal ?
En résumé :
- Télécharger la nouvelle version (on s’en serait douté)
- La décompacter
- Mettre le site en mode maintenance via l’interface d’administration, cela pour éviter l’accès des utilisateurs et les mises à jour de la base de données pendant l’upgrade (ce serait risqué pour l’intégrité de la base de données). Il faut mettre TOUS les sites en mode maintenance (une installation Drupal peut être très facilement multi-sites, et donc partager le même code pour plusieurs sites)
- en théorie, il faudrait désactiver toutes les extensions, le temps de la mise à jour (mais les risques sont faibles lors d’un upgrade normal telque le passage de la 6.3 et 6.4)
- Recopier le dossier “sites” qui contient les définitions de chaque site, les fichiers uploadés, mais aussi les modules d’extension installés, dans le dossier de la nouvelle version Drupal
- Renommer les dossiers pour que le dossier de la nouvelle version (avec la copie du sous-dossier sites) devienne “Drupal”
- Exécuter le script “update.php” OBLIGATOIREMENT après cette mise à jour (avant de remettre le site en mode normal pour les utilisateurs). Cela permet à Drupal de convertir (si nécessaire) des formats de données, etc… Sans cela vous risquez des problèmes, des choses qui ne fonctionneraient plus correctement, etc.
- réactiver les extensions qui ont été désactivées (en cas de problème de compatibilité, les laisser inactive, attendre les mises à jour de ces extensions, ou en chercher d’autres qui sont compatibles avec le nouveau Drupal)
- Remettre le ou les sites en mode normal pour que les utilisateurs puissent y accéder
- Faire quand même quelques essais
En détail :
Télécharger la nouvelle version :
Vous trouverez en général l’adresse du fichier archive sur le site drupal.org
cd /home/didier/download/drupal
wget http://ftp.drupal.org/files/projects/drupal-6.4.tar.gz :~/download/drupal$ wget http://ftp.drupal.org/files/projects/drupal-6.4.tar.gz --00:20:53-- http://ftp.drupal.org/files/projects/drupal-6.4.tar.gz => `drupal-6.4.tar.gz'
Resolving ftp.drupal.org... 140.211.166.134 Connecting to ftp.drupal.org|140.211.166.134|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1,068,473 (1.0M) [application/x-gzip]
100%[=================================================================================================================>] 1,068,473 541.99K/s
00:20:56 (540.61 KB/s) - `drupal-6.4.tar.gz' saved [1068473/1068473]
Décompacter :
:~/download/drupal$ tar xvfz drupal-6.4.tar.gz drupal-6.4/ drupal-6.4/includes/ drupal-6.4/includes/actions.inc drupal-6.4/includes/batch.inc ...
Mettre le site en mode maintenance :
Allez dans l’interface web d’administration de votre site, avec votre userid d’administration, menu “Administrer / Configuration / Maintenance du site” et sélectionner “Hors ligne” et enregistrer les modifications.
Si vous avez installé plusieurs sites Web dans votre Drupal, mettez les TOUS en mode maintenance. Cela évite que des mises à jour soit faites dans la base de donnée en cours d’upgrade de votre site.
Désactiver les extensions qui pourraient poser des problèmes de compatibilité avec la nouvelle version Drupal.
Si vous n’avez pas les dernières versions de ces extensions, c’est aussi l’occasion de mettre à jour ces modules d’extension ! En plus d’une éventuelle correction de bugs ou de sécurité, avoir la dernière version d’une extension réduit les risques d’incompatibilité lors de la mise à jour de votre Drupal.
Recopier le nouveau dossier Drupal et le sous-dossier sites de votre ancienne version.
Ce sous-dossier “sites” est normalement la seule place où des éléments personnels tels que thèmes, modules d’extensions (même pour TOUS les sites, ils doivent alors être dans sites/all/…) ou fichiers uploadés se trouvent:
$ cd /home/didier/www/ (adaptez votre nom de dossier : votre dossier est probablement /var/www) $ cp -R /home/didier/download/drupal/drupal-6.4 . (le nouveau dossier est "drupal-6.4" et l'ancienne version est "drupal")
$ cp -Rp drupal/sites/ drupal-6.4/
(le nouveau dossier contient maintenant tous vos modules, thèmes et fichiers personnels)
Le “cp -p” permet de conserver les paramètres owner et droits d’accès lors de la copie. Sans cela, votre serveur Web pourrait ne plus pouvoir écrire dans ../drupal/sites/mon_site.be/files , et ainsi ne plus pouvoir insérer des fichiers, etc.
Renomer les dossiers
$ mv drupal drupal-6.3 $ mv drupal-6.4 drupal
Vous êtes maintenant avec la nouvelle version du code de Drupal. Mais il faut encore finaliser cette mise à jour.
Exécuter le script update.php pour TOUS vos sites Drupal.
Avec votre navigateur, aller à l’ URL http://www.votresiteweb.be/update.php
Vous remarquez le POINT n° 1 : BACK UP your Data Base !
En effet, ce script va faire les éventuelles modifications dans VOS DONNES. Si ça se plante… vous risquez de vous retrouver avec une table Drupal totalement corrompue…
Donc, si votre site est important, FAITES ce backup !
Les points suivants sont moins importants dans notre cas :
- les codes sont clairement séparés puisque ancien et nouveau sont dans des dossiers différents
- le site est déjà en mode maintenance
- le code de la nouvelle version de Drupal est déjà installé dans le bon dossier
Je continue, et je ne sélectionne pas d’autre version.
Je click sur Update :
Et la mise à jour se termine, en théorie sans problème
Réactiver les modules d’extensions que vous auriez éventuellement désactivés pour CE site.
Vous pouvez remettre CE site en mode normal (càd accessible par les utilisateurs).
Si vous avez plusieurs sites dans cette installation Drupal (Drupal fonctionne merveilleusement bien en mode multisites : une seule fois le code et les thèmes et modules pour vos multiples sites), n’oubliez pas de continuer pour TOUS vos sites. Donc, un site à la fois, faites les “update.php”, “réactiver les modules”, “remettre le site en mode normal” et “quelques essais”.
Finalement, c’est assez facile !










Une réponse
-
1
Un peu de tout » Blog Archive » Drupal 6 : faire Logon quand votre site est en maintenance (via un notification par ping)
Laisser un commentaire15 octobre 2008
[...] J’ai déjà expliqué la méthode pour mettre à jour votre site Drupal dans ce billet du 15 août 2008. [...]