Mettre à jour votre site vers Drupal 5

Drupal 5 est sorti et avec lui son lot d’améliorations, de corrections, et de nouvelles fonctionnalités dont vous aimeriez bien profiter. Mais le jeu en vaut-il la chandelle ? Les réglages patiemment élaborés sur votre site en Drupal 4.7 seront-ils conservés sur Drupal 5 ? Vos modules continueront-ils à fonctionner ? Et votre thème ?

Dans ce tutoriel, nous verrons si la mise à jour vers Drupal 5 est justifiée, et pour ceux qui franchiront le pas, chacune des étapes à respecter. Ce tutoriel est une transcription assez fidèle du vidéocast écrit et enregistré par Angie Byron et Matt Westgate de Lullabot que vous trouverez à cette adresse (nécessite Apple QuickTime 7). D’autres vidéocasts Drupal sont disponibles sur http://drupal.org/videocasts.

Sommaire

1) Mettre à jour ou pas ?
2) Sauvegarder votre site Drupal actuel
3) Préparer votre site Drupal à la mise à jour
4) Faire la mise à jour
5) Tester votre site mis à jour

1) Mettre à jour ou pas ?

Avant de vous lancer, demandez-vous s’il est nécessaire de mettre à jour votre site vers Drupal 5. En effet, l’ampleur de la tâche que représente la mise à jour d’un site complexe peut être dissuasive.

Pourquoi mettre à jour ?

  • Pour utiliser les nouvelles fonctionnalités comme le nouveau thème (garland), jquery, et une interface d’administration carrément améliorée.
  • Pour utiliser les tout nouveaux modules qui ne sont disponibles que sur la toute dernière version de Drupal.
  • Pour profiter des corrections et mises à jour de sécurité fournies uniquement pour la dernière version, et la version d’avant (en l’occurrence, Drupal 5.x et Drupal 4.7.x).

Pourquoi NE PAS mettre à jour ?

  • Vous utilisez des modules ou thèmes communautaires qui n’ont pas encore été portés sur la nouvelle version de Drupal.
  • Vous avez développé (ou fait développer) des modules ou thèmes « maison » que vous n’avez pas envie ou ne savez pas porter sur la nouvelle version de Drupal.
  • Vous avez modifié (ou « forké ») le cœur de Drupal, et toutes ces modifications seront perdues au moment de la mise à jour.

NB : Si vous avez un site qui tourne sous Drupal 4.6.x, il est recommandé de d’abord faire la mise à jour vers Drupal 4.7.x, puis vers Drupal 5.x.

Se poser les bonnes questions

Quels modules et thèmes communautaires mon site utilise ?
Les modules ou thèmes communautaires sont ceux qui ont été développés par la communauté et mis à la disposition de tous sur drupal.org (ils ne sont pas fournis avec Drupal par défaut).

Ces modules et thèmes ont-ils été portés sur la dernière version de Drupal ?
Comme le fonctionnement interne de Drupal change d’une version à l’autre, les modules et thèmes doivent être mis à jour pour continuer à fonctionner correctement sur une nouvelle version.

Quels modules et thèmes maison mon site utilise ?
Les modules ou thèmes maison sont ceux qui ont été développés par vous ou un développeur, spécifiquement pour votre site. Comme leurs équivalents communautaires, ces modules et thèmes doivent être mis à jour pour être compatibles avec une nouvelle version de Drupal.

Quelles personnalisations ai-je fait sur mon site ?
Par exemple, ai-je modifié mon fichier .htaccess, mon fichier robots.txt… ?

Vérifier que les modules et thèmes communautaires de votre site ont été portés

Pour vérifier quels modules communautaires votre site utilise, rendez-vous avec un logiciel FTP dans le répertoire /modules de votre installation Drupal : en règle générale, les modules qui ont leur propre sous-répertoire sont des modules communautaires ou propriétaires :

Modules communautaires
Sur ce site, on trouve plusieurs modules communautaires et un module propriétaire : formateur, google_analytics, image, img_assist, logintoboggan, tinymce, webform.

Pour les thèmes, allez dans le répertoire /themes de votre installation Drupal, et repérez les thèmes qui ne sont pas l’un des 4 thèmes par défaut (bluemarine, chameleon, engines, ou pushbutton) :

Modules communautaires
Sur ce site, on trouve un thème personnalisé appelé « psychedelic ».

Ensuite, faites une petite visite sur drupal.org pour voir si ces modules et thèmes ont été convertis pour la dernière version de Drupal :

Une fois sur la liste des thèmes ou des modules, n’oubliez pas de régler Filter by Drupal Core compatibility sur "5.x" (puis cliquez sur Go) pour n’afficher que les modules ou thèmes compatibles avec la version 5.x de Drupal.

Si vos modules/thèmes s’y trouvent, téléchargez-les !

2) Sauvegarder votre site Drupal actuel

S’il y a le moindre problème au moment de la mise à jour, la sauvegarde vous permettra de revenir en arrière (au point où votre site fonctionnait correctement), elle est donc indispensable.

Un site Drupal est constitué de 2 composants :

  • la base de données, qui stocke le contenu ;
  • le répertoire drupal, qui contient le code (scripts PHP) faisant fonctionner Drupal.

Ces 2 composants doivent être sauvegardés séparément.

Sauvegarder la base de données

Cette sauvegarde s’effectue en créant un « dump » de la base de données, c’est-à-dire un export de l’ensemble de son contenu. La solution la plus simple est d’utiliser le logiciel phpMyAdmin. Voici les étapes dans les grandes lignes :

  • Allez sur phpMyAdmin (s’il est disponible, l’adresse a dû vous être fournie par votre hébergeur).
  • Sélectionnez la base de données à sauvegarder.
  • Cliquez sur Export.
  • Sélectionnez toutes les tables de la base de données.
  • Cochez Save as file, puis cliquez sur Go.

Cela déclenchera le téléchargement d’un fichier sur votre disque dur contenant toutes les données de votre base.

Si vous souhaitez restaurer cette base de données ultérieurement, utilisez à nouveau phpMyAdmin : sélectionnez la base de données dans laquelle vous souhaitez restaurer les données, effacez toutes les tables existantes (en cliquant check all, puis drop sur la liste des tables), cliquez sur Import, sélectionnez le fichier à importer sur votre disque dur, puis Go.

Sauvegarder le répertoire drupal

Pour cela, utilisez un logiciel FTP pour transférer le répertoire contenant votre site Drupal depuis votre serveur vers votre disque dur.

Notez que ce répertoire ne s’appelle pas nécessairement drupal, tout dépend de votre installation. Si vous avez installé Drupal à la racine de votre serveur, il est possible que ce répertoire s’appelle www ou htdocs.

Attention : certains fichiers comme .htaccess ne sont pas transférés automatiquement par certains logiciels FTP ; vérifiez que le répertoire transféré sur votre disque dur contient bien un fichier .htaccess ; si ce n’est pas le cas, consultez la documentation de votre logiciel FTP pour voir comment permettre le transfert de ce genre de fichier.

3) Préparer votre site Drupal à la mise à jour

Identifiez-vous en tant qu'admin

Identifiez-vous en tant qu’utilisateur numéro 1 (admin) car c’est le seul à pouvoir exécuter la mise à jour.

Passez votre site en mode Hors ligne

Allez dans admin » paramétrages, et passez votre site en mode Hors ligne afin qu’il ne soit plus accessible aux utilisateurs pendant la mise à jour (ils verront alors un message que vous pouvez personnaliser). Vous pouvez vérifier que votre site est bien hors ligne en vous déconnectant (clic sur déconnecter) : vous devriez voir le message hors ligne à la place de votre site. Pour vous identifier à nouveau, tapez manuellement l’adresse http://www.monsite.com/user (ou http://www.monsite.com/?q=user si vous n’avez pas activé les url simplifiées).

Désactivez les modules maison et communautaires

Dans admin » modules, décochez tous les modules à désactiver, puis Enregistrer. En effet, ces modules ne seront pas compatibles avec la nouvelle version de Drupal.

Basculez sur un thème par défaut

Dans admin » themes, sélectionnez bluemarine, puis Enregistrer. En effet, un thème personnalisé risquerait de ne pas fonctionner avec la nouvelle version de Drupal.

4) Faire la mise à jour

Installez la dernière version de Drupal

Téléchargez la dernière version de Drupal, décompressez-la sur votre disque dur, et copiez-la sur votre serveur au même endroit que votre ancien site. Il est conseillé de partir d’un répertoire vierge plutôt que d’écraser les anciens fichiers (autrement dit, effacez vos anciens fichiers du serveur avant de faire la copie).

Recopiez les éléments de votre ancien site

Transférez également sur votre serveur les répertoires sites et files de votre ancien site, ainsi que tous les fichiers qui auraient été modifiés comme .htaccess, robots.txt… Vous trouverez ces fichiers dans la copie de sauvegarde effectuée à l’étape 2.

Exécutez update.php, l’assistant de mise à jour de Drupal

Pour cela, saisissez l’adresse http://www.monsite.com/update.php dans votre navigateur (NB : vous devez être identifié en tant qu’utilisateur numéro 1 (admin) pour exécuter la mise à jour). Une fois sur la page de mise à jour, cliquez upgrade pour lancer la mise à jour. Le résultat (et les erreurs éventuelles) s’affiche après quelques instants. Sauvegardez cette page pour future référence, et cliquez sur main page pour revenir à la page d’accueil de votre site.

Ré-installez et activez les modules/thèmes

Pour cela, il faut copier les nouvelles versions des modules/thèmes que votre ancien site utilisait dans /sites/all. Attention, ce répertoire a changé par rapport à Drupal 4.7.x où les modules se trouvaient dans /modules et les thèmes dans /themes. Cette nouvelle organisation permet de garder tous les modules et thèmes utilisés par un site clairement séparés des fichiers constituant le noyau de Drupal.

Créez un sous-répertoire /modules dans /sites/all et transférez-y les nouvelles versions de vos modules. Activez-les, puis ré-exécutez update.php pour les mettre à jour.

Créez un sous-répertoire /themes dans /sites/all et transférez-y votre thème. Activez-le, puis vérifiez que votre site s’affiche correctement. Il est possible que vous deviez procéder à quelques ajustements (des CSS, notamment) pour que l’affichage soit identique à la version précédente.

5) Tester votre site mis à jour

Pour terminer, il vous reste à tester que votre site mis à jour fonctionne correctement. Testez notamment l’affichage, les principales fonctionnalités (création de contenu, mise en ligne de fichiers…) et vérifiez les liens cassés.

Si tout vous paraît en ordre, remettez le site en mode En ligne.

En cas de problème, consultez la documentation sur drupal.org ou demandez de l’aide sur un forum Drupal.