LINUX:MediaWiki - Mise à niveau

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au menu de MediaWiki


But

Comme pour tout système, il faut régulièrement faire des mises-à-jour ou des mises à niveau vers une nouvelle version. Les premières servent à corriger des erreurs, des trous de sécurité; la seconde permet d'ajouter de nouvelles fonctionnalités et de pouvoir passer à de nouvelles versions de paquets dépendants, le principal étant PHP.


Méthode

Pour ma part, je dédouble le logiciel mais adapté à la nouvelle version. On peut ainsi tester à notre aise cette nouvelle version et solutionner les problèmes rencontrés.


Compatibilité

Avant de commencer, on vérifie les requis pour le logiciel MediaWiki.

De même, on passe en revue tous les requis pour toutes les extensions qui nous concernent.

Si les requis ne nous conviennent pas, on ne procède pas à cette migration.

En ce qui concerne les habillages ("skins"), en général, il n'y a pas de problème.


Logiciel

je refais une nouvelle mise en place complète avec la nouvelle version dans un autre répertoire qui porte un nom faisant référence à cette nouvelle version. Par exemple, pour installer la version de MediaWiki 1.41, le place le logiciel dans le répertoire "/web/wiki.41". (voir l'article sur la Récupération des paquets et mise en place)


HTTPD

Je dédouble le fichier de configuration de MediaWiki pour Apache. Par exemple pour la version de MediaWiki 1.41:


Alias /wiki.41/skins /web/wiki.41/skins
Alias /wiki.41       /web/wiki.41
 
<Directory "/web/wiki.41">
  DirectoryIndex index.php
  Options +FollowSymLinks -Indexes
  AllowOverride All
  SetEnv MW_INSTALL_PATH "/web/wiki.41"
  <IfModule mod_authz_core.c>
    Require all granted
  </IfModule>
  IncludeOptional conf.d/php81.cfg
</Directory>
 
<Directory "/web/wiki.41/mw-config">
  Require all denied
</Directory>

Et on relance le service.


Schéma de base de données

On part d'une sauvegarde ("dump") du schéma de la base de données de MediaWiki (voir l'article sur MariaDB: serveur de base de données - Sauvegarde). Dans ce fichier renommé (par exemple "dbwiki41.sql"), on change de nom du schéma actuel par un nouveau. Par exemple si le nom du schéma est "dbwiki39", on le modifie en "dbwiki41". Et on réinjecte ou importe ce contenu dans la base de données qui va créer le nouveau schéma "dbwiki41".

Par exemple, avec la commande suivante:

mysql --user=root --password=<VOTRE_MOT_DE_PASSE_DE_ROOT>  < ./dbwiki41.sql


On n'oublie pas de donner les droits d'accès à l'utilisateur MySql à ce nouveau schéma.

Par exemple, pour l'utilisateur MySql "userwiki" qui gère le schéma de MediaWiki en production, on crée le fichier "grant.sql":


grant all privileges on dbwiki41.* to 'userwiki'@'localhost';

Et on exécute la commande:

mysql --user=root --password=<VOTRE_MOT_DE_PASSE_DE_ROOT>  < ./grant.sql


Personnalisation

Ensuite le récupère de la version en place le fichier de paramètres "LocalSettings.php" et des modifications éventuelles apportées au logiciel par exemple le logo et l'icône personnels.

On récupère également le contenu du répertoire "images".

Le fichier "LocalSettings.php" doit être adapté. toute référence à la version en production doit être adaptée pour nouvelle version notamment les paramètres suivants:


$wgScriptPath = "/wiki.41";
$wgDBname = "dbwiki41";
$wgDBuser = "userwiki";

Si on a activé l'extension "Semantic-Mediawiki", on récupère le fichier "extensions/SemanticMediaWiki/.smw.json". A noter que pour la version 1.41 de MediaWiki, l'extension "Semantic-Mediawiki" n'est pas encore compatible actuellement.

Si une extension n'est pas compatible et non fondamentale, on met en commentaire son chargement dans le fichier "LocalSettings.php". Par exemple pour les extensions "Semantic-Mediawiki" et "Semantic-Result-Formats" qui en dépend:


# wfLoadExtension( 'SemanticMediaWiki' );
# wfLoadExtension( 'SemanticResultFormats' );

Et les paramètres qui en dépendent.


UPDATE

On exécute en mode console sous Linux la commande de mise à jour "update" du répertoire "maintenance":

php81 /web/wiki.41/maintenance/update.php --conf /web/wiki.41/LocalSettings.php

Ne pas oublier de vérifier la propriété et les droits d'accès pour l'utilisateur "apache". (voir l'article sur les Propriétaire et droits d'accès) pour ce nouvel emplacement.


Test

On teste notre nouvelle installation. On lance dans notre explorateur Internet, par exemple, l'URL: "http://serverdb.home.dom/wiki.41/"

On trouve les solutions aux problèmes rencontrés.

Ceci peut concerner un changement de paramétrage d'options d'une extension ou de paramètres devenus obsolètes dans la nouvelle version.

Un problème majeur se manifeste par un écran vide ou un message d'erreur.

Il faut de toute façon aller vérifier les messages d'erreurs dans le journal de PHP. Ils vous renseignerons sur l'origine du problème. Si c'est une extension particulière qui est concernée, on peut la mettre momentanément hors chargement.

Une recherche sur Internet peut nous donner la solution.

En dernier recours, il existe toute une série d'options de débogage mais cela devient plus lourd, difficile.

Il reste aussi la solution de mettre directement les mains dans le code PHP du logiciel et plus spécialement des extensions.


Mise en production

Soit on met en production cette nouvelle installation après intégration des modifications intervenues entre-temps dans le contenu de notre site en production (base de données et images). Dans la configuration du service HTTPD, on désactive l'ancienne installation et on adapte la nouvelle pour qu'elle pointe vers le bon point d'entrée. C'est la solution que j'adopte. On réinjecte le schéma de la base de données et on met à jour le dossier "images". Le logiciel "rsync" est d'un grand secours. Bien préparé cette phase est rapide pour un petit site comme le mien.


Ou on effectue cette tâche directement sur le site en production. On met en mode maintenance le site et on procède aux mêmes interventions décrites ci-dessus mais sur l'installation en production. On passe outre la partie concernant la base de données et le service HTTPD. On efface tout le logiciel tout en préservant nos parties personnalisées: le fichier "LocalSettings.php", le répertoire "images", les logo et icône du site,... et on le remplace par le nouveau. On applique les solutions aux problèmes rencontrés. On effectue la phase d'"Update" et de sécurisation. On teste et on remet le site à disposition. Il est toujours fortement conseillé d'effectuer une sauvegarde au préalable pour le cas où ce traitement se passerait mal.




retour au menu de MediaWiki