Mettre à niveau Elgg

Basculer un site actif vers une nouvelle version d’Elgg.

Si vous avez écrit des plugins personnalisés, vous devriez également lire les guides de développement à propos des informations sur la mise à niveau du code des plugins pour la dernière version d’Elgg.

Conseil

  • Sauvegardez votre base de données et le code

  • Faites attentions aux commentaires spécifiques pour certaines versions ci-dessous

  • Ne mettez à niveau qu’une seule version mineure à la fois (1.6 => 1.7, puis 1.7 => 1.8)

  • Essayez la nouvelle version sur un site de test avant d’effectuer une mise à niveau

  • Signalez tout problèmes dans les plugins aux auteurs de plugins

  • Si vous êtes auteur de plugins, vous pouvez signaler tout problème de rétro-compatibilité sur GitHub

Instructions de base

  1. Identifiez-vous sur votre site en tant qu’administrateur

  2. Désactivez le cache dans les Paramètres Avancés (Advanced Settings)

  3. Sauvegardez votre base de données, votre répertoire de données, et le code

  4. Téléchargez la nouvelle version de Elgg depuis http://elgg.org

  5. Mettez à jour les fichiers
    • Si vous faites une mise à niveau corrective (1.9.x), écrasez vos fichiers existants avec la nouvelle version d’Elgg

    • Si vous faites une mise à niveau mineure (1.x), remplacez totalement les fichiers du noyau existant

  6. Fusionnez tous les nouveaux changements des règles de réécriture (rewrite rules)
    • Pour Apache depuis install/config/htaccess.dist vers .htaccess

    • Pour Nginx depuis install/config/nginx.dist vers la configuration de votre serveur (habituellement dans /etc/nginx/sites-enabled)

  7. Fusionnez toutes les modifications depuis settings.example.php dans settings.php

  8. Visitez http://your-elgg-site.com/upgrade.php

Note

Toute modification devrait avoir été écrite aux sein des plugins, de sorte qu’elles ne soient pas perdues lors de l’écrasement des fichiers. Si ce n’est pas le cas, faites attention à maintenir vos modifications.

De 2.2 vers 2.3

Version de PHP

PHP 5.5 a atteint la date de fin de support en Juillet 2016. Afin de s’assurer que les sites Elgg soient sécurisés, nous exigeons désormais PHP 5.6 pour les nouvelles installations.

Les installations existantes peuvent continuer à utiliser PHP 5.5 jusqu’à Elgg 3.0.

Afin de mettre à niveau Elgg vers la 2.3 en utilisant composer avec PHP 5.5, vous pouvez avoir besoin d’utiliser le drapeau --ignore-platform-reqs.

Tests

  • PHPUnit bootstrap est rendu obsolète par le chargeur automatique (autoloader) de composer : les tests ne devraient plus s’amorcer eux-même en utilisant /engine/tests/phpunit/bootstrap.php. Au lieu de cela, les tests devraient étendre \Elgg\TestCase.

  • Quelques fichiers du noyau vérifient désormais si la constante PHPUNIT_ELGG_TESTING_APPLICATION est définie pour déterminer si Elgg est bootstrappé pour les tests PHPUnit. La configuration phpunit.xml a besoin d’être mise à jour pour inclure la définition de cette constante.

  • PHPUnit bootstrap ne définit plus la varible globale $CONFIG. Les tests devraient utiliser _elgg_services()->config à la place.

  • Le noyau et les tests n’utilisent plus de valeurs globales privées dans $_ELGG->view_path et $_ELGG->allowed_ajax_views

Schéma

  • Les colonnes GUID de la base de données doivent être alignées. Dans la section admin une mise à niveau permet d’effectuer cette action. Assurez-vous d’avoir un backup disponible.

De 1.x à 2.0

Plugins retirés

Les plugins suivants ne sont plus livrés avec le noyau d’Elgg :

Les solutions de rechange spécifiques à IE suivantes ont été abandonnées

Plusieurs vues (css/ie, css/ie7, css/ie8, etc.) ainsi que des commentaires conditionnels ont été supprimés maintenant que les navigateurs à partir de IE10 sont plus conformes aux standards. Si vous avez besoin d’un support des navigateurs plus anciens que cela, vous devrez trouver ou construire un plugin qui ajoute sa propre couche de compatibilité ou des polyfills.

Mettez à jour la configuration de votre serveur web

Les chemins d’URL tels que cache/* et rewrite.php utilisent désormais le script du contrôleur frontal principal. Vous devez supprimer ces règles de réécriture de al configuration de votre serveur web (par ex. .htaccess).

Supprimez également les règles pour les chemins tels que export/* ; ces points de terminaison ont été supprimés.

Emplacement des paramètres

Après la mise à niveau, déplacez votre fichier settings.php depuis engine/ vers elgg-config/.

De 1.10 à 1.11

Changements non rétrocompatibles

Dans les versions 1.9 et 1.10, les noms et les valeurs pour les métadonnées et les annotations n’étaient correctement rognées (trim) pour les espaces vides. Elgg 1.11 trim correctement ces chaînes de caractères et met à jour la base de données pour corriger les chaînes existantes. Si votre plugin utilise des métadonnées ou des annotations, vous allez devoir mettre à jour le plugin pour rogner les noms et les valeurs. Ceci est particulièrement important si vous utilisez des clauses SQL spécifiques ou avez des IDs de valeurs de métadonnées (metastrings) codées en dur, dans la mesure où la mise à jour peut modifier les IDs de ces valeurs des métadonnées.

De 1.8 à 1.9

Elgg 1.9 est une mise à niveau bien plus légère que ne l’était la 1.8.

Changements non rétrocompatibles

Les plugins et thèmes écrits pour la 1.8 sont censés être compatibles avec la 1.9 à l’exception de ce qui est relatif aux commentaires, réponses aux discussions, et notifications. Veuillez rapporter tout problème de rétro-compatibilité outre celles qui viennent d’être listées.

Étapes de la mise à niveau

Plusieurs migrations de données sont en jeu, aussi il est particulièrement important que vous fassiez une sauvegarde de votre base de données et de votre répertoire de données avant d’effectuer la mise à niveau.

Téléchargez la nouvelle version et copiez ces fichiers depuis le site 1.8 existant :

  • .htaccess

  • engine/settings.php

  • tout les dossiers de plugins tierce-partie dans le répertoire mod

Puis remplacez l’ancien répertoire d’installation par le nouveau. De cette manière vous vous assurez de vous débarrasser des fichiers obsolètes qui pourraient causer des problèmes s’ils restaient en place.

Suivez les instructions basiques listées précédemment.

Une fois que vous avez visité upgrade.php, rendez-vous dans la partie admin de votre site. Vous devriez voir une notifications indiquant que vous avez des mises à niveau en attente. Cliquez sur le lien dans la notification pour voir et effectuer les mises à niveau.

Le nouveau système de notifications délivre les messages toutes les minutes via un gestionnaire cron. Si vous n’avez pas encore mis cela en place, vous allez devoir installer et configurer crontab sur votre serveur. Si les tâches cron sont déjà configurées, notez que les périodes de cron disponibles peuvent avoir changé et que vous pouvez avoir besoin de mettre à jour votre crontab actuel pour refléter ces changements.

Engagement en temps

Exécuter l’ensemble de ces mises à niveau a demandé environ 1 heure et 15 minutes sur le site de la communauté Elgg qui contenait au moment de la migration :

  • ~75,000 réponses aux sujets de discussion

  • ~75,000 commentaires

  • ~75,000 répertoires de données

Vous devriez ne considérer ceci que comme une estimation à la louche pour votre propre mise à niveau. Le temps que cela prendra va dépendre de la taille de votre site et de la puissance de vos serveurs.

1.7 vers 1.8

Elgg 1.8 est le plus grand pas en avant dans le développement d’Elgg depuis la version 1.0. De ce fait, il y a plus de travail pour mettre à jour le noyau et les plugins que pour les mises à niveau précédentes.

Mettre à niveau le noyau

Supprimez les répertoire du noyau suivants (même niveau que _graphics et engine) :

  • _css

  • account

  • admin

  • dashboard

  • entities

  • friends

  • search

  • settings

  • simplecache

  • views

Avertissement

Si vous ne supprimez pas ces répertoires avant une mise à niveau, vous allez avoir des ennuis !