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.
Contenu
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]
3a. Mise à niveau via Composer (recommandé)
Si vous aviez installé votre projet 2.3 avec composer, vous pouvez suivre la séquence suivante :
Sauvegardez votre base de données, votre répertoire des données, et le code
composer self-update
cd ./path/to/project/root
composer require elgg/elgg:~3.0.0
composer update
vendor/bin/elgg-cli upgrade async -v
Note
Dans certains cas, la mise à niveau via la ligne de commande échoue car certaines modifications de schéma de base de données doivent d’abord être appliquées. Dans ce cas, vous devez exécuter les migrations Phinx migrations manuellement
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 !
Sauvegardez votre base de données, votre répertoire des données, et le code
Identifiez-vous sur votre site en tant qu’administrateur
Téléchargez la nouvelle version de Elgg depuis http://elgg.org
- 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.
- 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
)
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