Mediawiki Update Version 1.23.10 vers 1.24.0

De EjnTricks

L'installation initiale de MediaWiki a été faite à l'aide de la commande aptitude. Depuis la version 1.18.1, les mises à jour sont réalisées manuellement et ce principe est repris pour la version 1.24.0. L'objectif est de mettre en place un lien /var/lib/mediawiki pointant vers la version installée. De plus, les plugins et les contenus sont déportés dans un répertoire /var/datas/mediawiki


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Process-Icon.png Installation nouvelle version

L'objectif de cette installation est de maîtriser tous les fichiers et de faciliter les prochaines mises à jour. Les répertoires mis en place dans cet organisation sont:

  • /var/datas/mediawiki: Contient les extensions installées et le répertoire de téléversement.
  • /usr/share/mediawiki-1.24.0: Installation de la version.
  • /var/lib/mediawiki: Lien vers la version à prendre en compte.
  • /etc/mediawiki: Contient les configurations.


Command-icon.png Mise en place instance

Le fichier mediawiki-1.24.0.tar.gz est téléchargé, depuis http://www.mediawiki.org/wiki/Download et installé:

#sudo wget -P /usr/share http://releases.wikimedia.org/mediawiki/1.24/mediawiki-1.24.0.tar.gz
#sudo tar -C /usr/share -xzvf /usr/share/mediawiki-1.24.0.tar.gz
#sudo rm /usr/share/mediawiki-1.24.0.tar.gz
#sudo chown -R www-data:www-data /usr/share/mediawiki-1.24.0

Il référencer le fichier LocalSettings.php depuis /etc/mediawiki, dans la nouvelle instance.

#sudo ln -s /etc/mediawiki/LocalSettings.php /usr/share/mediawiki-1.24.0/LocalSettings.php
#sudo chown -h www-data:www-data /usr/share/mediawiki-1.24.0/LocalSettings.php

La variable MW_INSTALL_PATH avait été modifiée, lors de l'installation de 1.18.1, afin de pointer sur l'emplacement /var/lib/mediawiki. L'utilisation du lien permet donc de ne pas avoir à modifier cette variable.

Les extensions et les contenus uploadés ont été déplacés, et il est nécessaire de les référencer dans la nouvelle instance. Concernant les extensions, cela consiste en la création de lien dans le répertoire extensions vers /var/datas/mediawiki/extensions, l'exemple dépend des plugins installés.

#sudo ln -s /var/datas/mediawiki/extensions/Piwik /usr/share/mediawiki-1.24.0/extensions/Piwik
#sudo ln -s /var/datas/mediawiki/extensions/skins /usr/share/mediawiki-1.24.0/extensions/skins
#sudo ln -s /var/datas/mediawiki/extensions/TwitterFBLike /usr/share/mediawiki-1.24.0/extensions/TwitterFBLike
#sudo ln -s /var/datas/mediawiki/extensions/W4G\ Rating\ Bar /usr/share/mediawiki-1.24.0/extensions/W4G\ Rating\ Bar
#sudo chown -h www-data:www-data /usr/share/mediawiki-1.24.0/extensions/Piwik
#sudo chown -h www-data:www-data /usr/share/mediawiki-1.24.0/extensions/skins
#sudo chown -h www-data:www-data /usr/share/mediawiki-1.24.0/extensions/TwitterFBLike
#sudo chown -h www-data:www-data /usr/share/mediawiki-1.24.0/extensions/W4G\ Rating\ Bar

Ce qui donne le contenu suivant dans /usr/share/mediawiki-1.24.0/extensions

total 72
drwxr-xr-x 17 www-data www-data 4096 août  12 23:38 ./
drwxr-xr-x 13 www-data www-data 4096 août  12 23:37 ../
drwxr-xr-x  4 www-data www-data 4096 nov.  27  2014 Cite/
drwxr-xr-x  5 www-data www-data 4096 nov.  27  2014 ConfirmEdit/
drwxr-xr-x  4 www-data www-data 4096 nov.  27  2014 Gadgets/
drwxr-xr-x  3 www-data www-data 4096 nov.  27  2014 ImageMap/
drwxr-xr-x  4 www-data www-data 4096 nov.  27  2014 InputBox/
drwxr-xr-x  3 www-data www-data 4096 nov.  27  2014 Interwiki/
drwxr-xr-x  6 www-data www-data 4096 nov.  27  2014 LocalisationUpdate/
drwxr-xr-x  3 www-data www-data 4096 nov.  27  2014 Nuke/
drwxr-xr-x  3 www-data www-data 4096 nov.  27  2014 ParserFunctions/
lrwxrwxrwx  1 www-data www-data   37 août  12 23:37 Piwik -> /var/datas/mediawiki/extensions/Piwik/
drwxr-xr-x  3 www-data www-data 4096 nov.  27  2014 Poem/
-rw-r--r--  1 www-data www-data 1053 nov.  27  2014 README
drwxr-xr-x  4 www-data www-data 4096 nov.  27  2014 Renameuser/
lrwxrwxrwx  1 www-data www-data   37 août  12 23:37 skins -> /var/datas/mediawiki/extensions/skins/
drwxr-xr-x  4 www-data www-data 4096 nov.  27  2014 SpamBlacklist/
drwxr-xr-x  4 www-data www-data 4096 nov.  27  2014 SyntaxHighlight_GeSHi/
drwxr-xr-x  5 www-data www-data 4096 nov.  27  2014 TitleBlacklist/
lrwxrwxrwx  1 www-data www-data   45 août  12 23:38 TwitterFBLike -> /var/datas/mediawiki/extensions/TwitterFBLike/
lrwxrwxrwx  1 www-data www-data   46 août  12 23:38 W4G Rating Bar -> /var/datas/mediawiki/extensions/W4G Rating Bar/
drwxr-xr-x  4 www-data www-data 4096 nov.  27  2014 WikiEditor/

Le dernier lien mis en place concerne le répertoire images, l'original est supprimé car il ne sera pas utilisé. Attention il y a un fichier .htaccess par défaut dans ce répertoire

#sudo rm -rf /usr/share/mediawiki-1.24.0/images
#sudo ln -s /var/datas/mediawiki/images /usr/share/mediawiki-1.24.0/images
#sudo chown -h www-data:www-data /usr/share/mediawiki-1.24.0/images

Dans le cadre de la mise en place du sitemap, un lien a été mis en place pour rendre accessible les fichiers. Il faut recréer ces liens.

#sudo ln -s /var/datas/mediawiki/sitemap /usr/share/mediawiki-1.24.0/sitemap
#sudo chown -h www-data:www-data /usr/share/mediawiki-1.24.0/sitemap

Enfin, il faut changer le lien symbolique /var/lib/mediawiki pour activer la nouvelle version.

#sudo rm /var/lib/mediawiki
#sudo ln -s /usr/share/mediawiki-1.24.0 /var/lib/mediawiki
#sudo chown -h www-data:www-data /var/lib/mediawiki


Icon-database-process.png Mise à jour de la base de données

Suite à la précédente mise à jour, les droits d'accès sur le compte MySql sont mis à jour pour s'éviter toutes les tentatives.

mysql> GRANT CREATE ON wikidb.* TO 'wikiuser'@'localhost';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALTER ON wikidb.* TO 'wikiuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT INDEX ON wikidb.* to 'wikiuser'@'localhost';
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 ROWS affected (0.00 sec)

La mise à jour s'effectue par l'exécution du script update.php, situé dans le répertoire maintenance de l'installation:

L'exécution a été réalisée à partir du lien /var/lib/mediawiki, et non pas directement dans la version installée, validant ainsi la répartition des fichiers.

Lors du premier affichage, une erreur se produit et le site n'est plus disponible. Le message suivant est affiché sur la page. Erreur sur la page

MediaWiki internal error.

Exception caught inside exception handler.

Set $wgShowExceptionDetails = true; at the bottom of LocalSettings.php to show detailed debugging information.

Après affectation de la valeur true à la variable $wgShowExceptionDetails dans le fichier /var/lib/mediawiki/LocalSettings.php, le message sur la page est plus parlant.

MediaWiki internal error.

Original exception: [ff7349cb] /wiki/index.php/Accueil Exception from line 205 of /usr/share/mediawiki-1.24.0/includes/skins/SkinFactory.php: No registered builder available for fallback.
Backtrace:
#0 /usr/share/mediawiki-1.24.0/includes/context/RequestContext.php(384): SkinFactory->makeSkin(string)
#1 /usr/share/mediawiki-1.24.0/includes/context/ContextSource.php(154): RequestContext->getSkin()
#2 /usr/share/mediawiki-1.24.0/includes/parser/ParserOutput.php(90): ContextSource->getSkin()
#3 [internal function]: ParserOutput->{closure}(array)
#4 /usr/share/mediawiki-1.24.0/includes/parser/ParserOutput.php(98): preg_replace_callback(string, Closure, string)
#5 /usr/share/mediawiki-1.24.0/includes/OutputPage.php(1724): ParserOutput->getText()
#6 /usr/share/mediawiki-1.24.0/includes/OutputPage.php(1743): OutputPage->addParserOutputText(ParserOutput)
#7 /usr/share/mediawiki-1.24.0/includes/page/Article.php(704): OutputPage->addParserOutput(ParserOutput)
#8 /usr/share/mediawiki-1.24.0/includes/actions/ViewAction.php(44): Article->view()
#9 /usr/share/mediawiki-1.24.0/includes/MediaWiki.php(414): ViewAction->show()
#10 /usr/share/mediawiki-1.24.0/includes/MediaWiki.php(282): MediaWiki->performAction(Article, Title)
#11 /usr/share/mediawiki-1.24.0/includes/MediaWiki.php(584): MediaWiki->performRequest()
#12 /usr/share/mediawiki-1.24.0/includes/MediaWiki.php(435): MediaWiki->main()
#13 /usr/share/mediawiki-1.24.0/index.php(46): MediaWiki->run()
#14 {main}

Exception caught inside exception handler: [852fc013] /wiki/index.php/Accueil Exception from line 205 of /usr/share/mediawiki-1.24.0/includes/skins/SkinFactory.php: No registered builder available for fallback.
Backtrace:
#0 /usr/share/mediawiki-1.24.0/includes/context/RequestContext.php(384): SkinFactory->makeSkin(string)
#1 /usr/share/mediawiki-1.24.0/includes/context/ContextSource.php(154): RequestContext->getSkin()
#2 /usr/share/mediawiki-1.24.0/includes/OutputPage.php(2168): ContextSource->getSkin()
#3 /usr/share/mediawiki-1.24.0/includes/exception/MWException.php(195): OutputPage->output()
#4 /usr/share/mediawiki-1.24.0/includes/exception/MWException.php(238): MWException->reportHTML()
#5 /usr/share/mediawiki-1.24.0/includes/exception/MWExceptionHandler.php(45): MWException->report()
#6 /usr/share/mediawiki-1.24.0/includes/exception/MWExceptionHandler.php(141): MWExceptionHandler::report(SkinException)
#7 /usr/share/mediawiki-1.24.0/includes/MediaWiki.php(449): MWExceptionHandler::handle(SkinException)
#8 /usr/share/mediawiki-1.24.0/index.php(46): MediaWiki->run()
#9 {main}

Dans un premier temps, il faut redémarrer le serveur Apache. Le site est alors disponible et une message d'erreur plus explicite est affiché, indiquant que le style utilisé monobook dans le cadre de cet article, n'est pas activé. Une modification a été réalisé dans la version 2.14.0, qui fait que les styles ne sont plus activés automatiquement.


Il est donc nécessaire d'activer le style précédement utilisé dans le fichier /var/lib/mediawiki/LocalSettings.php en ajoutant les lignes suivantes.

# Enable skins
require_once("$IP/skins/MonoBook/MonoBook.php");


Les droits accordés, sur le compte d'accès à la base de données, ne sont pas nécessaires pour le bon fonctionnement du Wiki. Ils sont donc supprimés:

mysql> REVOKE CREATE ON wikidb.* FROM 'wikiuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> REVOKE ALTER ON wikidb.* FROM 'wikiuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> REVOKE INDEX ON wikidb.* FROM 'wikiuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 ROWS affected (0.00 sec)


Configuration App Web-Icon.png Mise à jour configuration Apache

Aucune mise à jour de Apache n'est nécessaire, puisque la configuration mise en place pointe à présent sur le lien /var/lib/mediawiki