Mettre à niveau Elgg

Ce document va vous guider à travers les étapes nécessaires pour mettre à niveau votre installation Elgg vers la dernière version.

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

Conseil

  • Sauvegardez votre base de données, votre répertoire des données et le code source

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

  • Il est conseillé pour les versions inférieures à 2.0 de n’appliquer qu”une seule mise à niveau mineure à la fois

  • Vous pouvez mettre à niveau depuis n’importe quelle version mineure vers n’importe quelle version mineure supérieure au sein de la même version majeure (2.0 -> 2.1 ou 2.0 -> 2.3)

  • Vous pouvez mettre à niveau uniquement la dernière version mineure de la version majeure précédente vers n’importe quelle version mineure de la version majeure suivante (2.3 -> 3.0 ou 2.3 -> 3.2, mais pas 2.2 -> 3.x).

  • A partir de Elgg 2.3.* vous pouvez mettre à niveau vers n’importe quelle version ultérieure de Elgg sans devoir passer par chacune des versions mineures (par ex. vous pouvez mettre à niveau directement de la 2.3.8 vers la 3.2.5, sans devoir mettre à niveau vers les versions 3.0 et 3.1)

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

  • Signalez tout problème 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

De 2.3 à 3.0

1. Mettez à niveau composer.json

Si vous avez utilisé le projet de démarrage Elgg pour installer Elgg 2.3, vous pouvez avoir besoin de mettre à niveau votre composer.json :

  • modifiez les pré-requis de la plateforme vers PHP >= 7.0

  • facultativement, définissez les paramètres d’optimisation de l’autoloader

  • facultativement, désactivez le plugin fxp-asset au bénéfice de asset-packagist

Votre composer.json devrait ressembler à quelque chose comme ceci (en fonction des changements que vous avez vous-même introduits) :

{
        "type": "project",
        "name": "elgg/starter-project",
        "require": {
                "elgg/elgg": "3.*"
        },
        "config": {
                "process-timeout": 0,
                "platform": {
                        "php": "7.0"
                },
                "fxp-asset": {
                        "enabled": false
                },
                "optimize-autoloader": true,
                "apcu-autoloader": true
        },
        "repositories": [
                {
                        "type": "composer",
                        "url": "https://asset-packagist.org"
          }
        ]
}

2. Mettez à jour le .htaccess

Trouvez la ligne :

RewriteRule ^(.*)$ index.php?__elgg_uri=$1 [QSA,L]

Et remplacez-la par :

RewriteRule ^(.*)$ index.php [QSA,L]

3b. Mise à niveau manuelle (approche traditionnelle)

Les mises à niveau manuelles sont une opération pénible pour les administrateurs de sites. Nous vous déconseillons de maintenir un site Elgg en utilisant des archives ZIP. Économisez-vous du temps en apprenant comment utiliser composer et les systèmes de contrôle de version, tels que git. Cette tâche sera également plus complexe si vous utilisez des plugins tierce-partie et/ou si vous avez modifié les fichiers du noyau !

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

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

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

  4. Mettez à jour les fichiers
    • Si vous mettez à niveau vers une version majeure, vous devrez replacer tous les fichiers du noyau et supprimer tous les fichiers qui ont été retirés du noyau de Elgg, car ils peuvent interférer avec le bon fonctionnement de votre site.

    • Si vous mettez à jour vers une version mineure ou un patch, vous devez remplacer tous les fichiers du noyau.

  5. 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)

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

  7. Exécutez les mises à niveau asynchrones via http://your-elgg-site.com/admin/upgrades

Note

Toutes les modifications devraient avoir été faites au sein de plugins, de sorte qu’elles ne sont pas perdues lors de l’écrasement des fichiers. Si ce n’est pas le cas, prenez soin de maintenir vos modifications.

Note

Si vous n’arrivez pas à accéder au script upgrade.php et recevez une erreur, ajoutez la ligne $CONFIG->security_protect_upgrade = false; à votre ficher settings.php, puis supprimez-le après avoir terminé toutes les étapes de l’installation.

Note

Si vous rencontrez des soucis avec des plugins lors du processus de mise à niveau, ajoutez un fichier nommé disabled dans votre dossier /mod/. Ceci va désactiver tous les plugins, de sorte que vous puissiez terminer la mise à niveau du noyau. Vous pouvez ensuite gérer les mises à niveau de chacun des plugins l’un après l’autre.

Si vous avez installé Elgg en utilisant une archive d’installation mais souhaitez maintenant basculer vers composer :

  • Mettez à niveau votre installation en utilisant la méthode manuelle

  • Déplacez votre code vers un emplacement provisoire

  • Créez un nouveau projet composer en utilisant le projet Elgg de démarrage en suivant les instructions d’installation dans le répertoire racine de votre installation actuelle

  • Copiez les plugins tierce-partie depuis votre ancienne installation vers le répertoire /mod

  • Exécutez l’installateur de Elgg en utilisant votre navigateur ou l’outil en ligne de commande elgg-cli

  • Quand vous arrivez à l’étape de la base de données, indiquez les mêmes accès que vous avez utilisés pour l’installation manuelle, Elgg va comprendre qu’il y a une installation existante et ne remplacera aucune valeur de la base de données

  • Facultativement, commitez votre nouveau projet vers un suivi de version

Application d’un correctif à l’aide de Composer

La définition d’un correctif se trouve dans la documentation Release policy.

Les pré-requis de votre composer.json pour Elgg doivent être ~3.y.0 (où y est la version mineure 0, 1, etc. que vous souhaitez installer). Cela vous permettra d’installer facilement des correctifs sans risque d’installer la prochaine version mineure.

{
        "require": {
                "elgg/elgg": "~3.0.0"
        }
}

Juste pour vous en assurer vous pouvez d’abord vérifier ce qui sera installé / mis à niveau en exécutant la commande suivante

# to get a full list of all packages which can be upgraded
composer update --dry-run

# or if you only wish to check for Elgg
composer update elgg/elgg --dry-run

Pour mettre à niveau Elgg, exécutez simplement

# to upgrade all packages
composer update

# or to only upgrade Elgg
composer update elgg/elgg

Versions précédentes

Vérifiez la documentation Elgg qui correspond à la version Elgg vers laquelle vous souhaitez mettre à niveau, en changeant la version de documentation dans le coin inférieur gauche de Upgrading docs