Mediawiki Update Version 1.17.0 vers 1.18.0

De EjnTricks
Révision de 2 janvier 2014 à 11:51 par Etienne (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

L'installation initiale de MediaWiki a été faite à l'aide de la commande aptitude. Or aucune mise à jour n'a été réalisée automatiquement. Cette procédure décrit la montée de version réalisée manuellement sur la machine. La mise à jour est similaire au passage sous la version 1.17.0, l'analyse des fichiers n'est donc pas reproduite.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Process-Icon.png Installation nouvelle version

Le fichier mediawiki-1.18.0.tar.gz est téléchargé, depuis http://www.mediawiki.org/wiki/Download, et placé dans le répertoire /usr/share. La décompression de ce tar va créé les fichiers à installer juste à côté de l'installation active:

#cd /usr/share
#sudo tar -xzf mediawiki-1.18.0.tar.gz
#sudo chown -R www-data:www-data /usr/share/mediawiki-1.18.0


Command-icon.png Mise en place instance

Une fois déployée, une nouvelle instance est mise en place à l'aide des liens comme cela a été réalisé pour la précédente version. Mais il faut noter le fichier OBSOLETE dans le répertoire config, sur lequel le lien sera quand même mis en place. Le répertoire maintenance ne sera pas lié, car il contient les fichiers de mise à jour non nécessaire au bon fonctionnement. Les répertoires suivants sont copiés depuis la précédente installation:

  • extensions: Contient les extensions installés
  • images: Contient les images précédemment mises en place sur la précédente version.
#sudo mkdir /var/lib/mediawiki-1.18.0
#sudo cp -R /var/lib/mediawiki-1.17.0/extensions /var/lib/mediawiki-1.18.0
#sudo cp -R /var/lib/mediawiki-1.17.0/images /var/lib/mediawiki-1.18.0
#sudo ln -s /etc/mediawiki/AdminSettings.php /var/lib/mediawiki-1.18.0/AdminSettings.php
#sudo ln -s /etc/mediawiki/LocalSettings.php /var/lib/mediawiki-1.18.0/LocalSettings.php
#sudo ln -s /usr/share/mediawiki-1.18.0/api.php /var/lib/mediawiki-1.18.0/api.php
#sudo ln -s /usr/share/mediawiki-1.18.0/api.php5 /var/lib/mediawiki-1.18.0/api.php5
#sudo ln -s /usr/share/mediawiki-1.18.0/bin /var/lib/mediawiki-1.18.0/bin
#sudo ln -s /usr/share/mediawiki-1.18.0/cache /var/lib/mediawiki-1.18.0/cache
#sudo ln -s /usr/share/mediawiki-1.18.0/img_auth.php /var/lib/mediawiki-1.18.0/img_auth.php
#sudo ln -s /usr/share/mediawiki-1.18.0/img_auth.php5 /var/lib/mediawiki-1.18.0/img_auth.php5
#sudo ln -s /usr/share/mediawiki-1.18.0/includes /var/lib/mediawiki-1.18.0/includes
#sudo ln -s /usr/share/mediawiki-1.18.0/index.php /var/lib/mediawiki-1.18.0/index.php
#sudo ln -s /usr/share/mediawiki-1.18.0/index.php5 /var/lib/mediawiki-1.18.0/index.php5
#sudo ln -s /usr/share/mediawiki-1.18.0/languages /var/lib/mediawiki-1.18.0/languages
#sudo ln -s /usr/share/mediawiki-1.18.0/load.php /var/lib/mediawiki-1.18.0/load.php
#sudo ln -s /usr/share/mediawiki-1.18.0/load.php5 /var/lib/mediawiki-1.18.0/load.php5
#sudo ln -s /usr/share/mediawiki-1.18.0/mw-config /var/lib/mediawiki-1.18.0/mw-config
#sudo ln -s /usr/share/mediawiki-1.18.0/opensearch_desc.php /var/lib/mediawiki-1.18.0/opensearch_desc.php
#sudo ln -s /usr/share/mediawiki-1.18.0/opensearch_desc.php5 /var/lib/mediawiki-1.18.0/opensearch_desc.php5
#sudo ln -s /usr/share/mediawiki-1.18.0/profileinfo.php /var/lib/mediawiki-1.18.0/profileinfo.php
#sudo ln -s /usr/share/mediawiki-1.18.0/redirect.php /var/lib/mediawiki-1.18.0/redirect.php
#sudo ln -s /usr/share/mediawiki-1.18.0/redirect.php5 /var/lib/mediawiki-1.18.0/redirect.php5
#sudo ln -s /usr/share/mediawiki-1.18.0/redirect.phtml /var/lib/mediawiki-1.18.0/redirect.phtml
#sudo ln -s /usr/share/mediawiki-1.18.0/resources /var/lib/mediawiki-1.18.0/resources
#sudo ln -s /usr/share/mediawiki-1.18.0/serialized /var/lib/mediawiki-1.18.0/serialized
#sudo ln -s /usr/share/mediawiki-1.18.0/skins /var/lib/mediawiki-1.18.0/skins
#sudo ln -s /usr/share/mediawiki-1.18.0/StartProfiler.sample /var/lib/mediawiki-1.18.0/StartProfiler.sample
#sudo ln -s /usr/share/mediawiki-1.18.0/thumb.php /var/lib/mediawiki-1.18.0/thumb.php
#sudo ln -s /usr/share/mediawiki-1.18.0/thumb.php5 /var/lib/mediawiki-1.18.0/thumb.php5
#sudo ln -s /usr/share/mediawiki-1.18.0/trackback.php /var/lib/mediawiki-1.18.0/trackback.php
#sudo ln -s /usr/share/mediawiki-1.18.0/trackback.php5 /var/lib/mediawiki-1.18.0/trackback.php5
#sudo ln -s /usr/share/mediawiki-1.18.0/wiki.phtml /var/lib/mediawiki-1.18.0/wiki.phtml

Contrairement à la version 1.17.0, des plugins sont disponibles dans le répertoire extensions. Des liens sont donc placés:

#sudo ln -s /usr/share/mediawiki-1.18.0/extensions/ConfirmEdit /var/lib/mediawiki-1.18.0/extensions/ConfirmEdit
#sudo ln -s /usr/share/mediawiki-1.18.0/extensions/Gadgets /var/lib/mediawiki-1.18.0/extensions/Gadgets
#sudo ln -s /usr/share/mediawiki-1.18.0/extensions/Nuke /var/lib/mediawiki-1.18.0/extensions/Nuke
#sudo ln -s /usr/share/mediawiki-1.18.0/extensions/ParserFunctions /var/lib/mediawiki-1.18.0/extensions/ParserFunctions
#sudo ln -s /usr/share/mediawiki-1.18.0/extensions/Renameuser /var/lib/mediawiki-1.18.0/extensions/Renameuser
#sudo ln -s /usr/share/mediawiki-1.18.0/extensions/Vector /var/lib/mediawiki-1.18.0/extensions/Vector
#sudo ln -s /usr/share/mediawiki-1.18.0/extensions/WikiEditor /var/lib/mediawiki-1.18.0/extensions/WikiEditor

A noter, le plugin ParserFunctions avait déjà été installé sur la précédente version. La mise ne place du lien vient remplacée l'installation précédente.


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

Les exemples d'exécution montre la nécessité d'avoir les droits d'accès suivants sur la base de données, dans le cas de MySql:

  • create: Pour la création de nouvelles tables.
  • alter: Pour la mise à jour de tables existantes.
  • index: Pour la création de nouveaux index.

En supposant que le compte utilisé est wikiuser, et la base de données wikidb, les trois requêtes SQL doivent être exécutées. En effet, après la précédente installation les droits avaient été supprimés:

mysql> GRANT CREATE ON wikidb.* TO 'wikiuser'@'localhost';
Query OK, 0 rows affected (0.00 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.00 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:

Le message d'erreur est suffisamment clair, le fichier LocalSettings.php n'est pas trouvé. Celui-ci est nécessaire car il contient les informations de connexion à la base de données par exemple.

Sur cette tentative, le message d'erreur indique une erreur de code, mais avec un emplacement de fichier vers l'ancienne version installée. Il faut modifier le paramètre MW_INSTALL_PATH dans le fichier LocalSettings.php indiquant l'emplacement d'installation.

 #define('MW_INSTALL_PATH','/var/lib/mediawiki-1.17.0');
 define('MW_INSTALL_PATH','/var/lib/mediawiki-1.18.0');

Il semble donc y avoir une incompatibilité du plugin SpecialDeleteOldRevision2 avec la nouvelle version de MediaWiki. Ce plugin est donc désactivé dans un premier temps.

# Extension DeleteOldRevisions
#$wgGroupPermissions['sysop']['DeleteOldRevisions'] = true;
#require_once("$IP/extensions/specialdeleteoldrevisions2/SpecialDeleteOldRevisions2.php");

A cette tentative, il apparait l'absence du fichier /var/lib/mediawiki-1.18.0/maintenance/convertLinks.php. En effet, le lien vers le répertoire maintenance n'avait pas été mis en place. Il est donc rajouté:

#sudo ln -s /usr/share/mediawiki-1.18.0/maintenance /var/lib/mediawiki-1.18.0/maintenance


Le message d'erreur indique donc la nécessité du privilège de modification de tables au niveau de la base de données. L'ensemble des privilèges mis en place pour la version 1.17.0 est reproduit afin d'éviter les tentatives:

mysql> GRANT CREATE ON wikidb.* TO 'wikiuser'@'localhost';
Query OK, 0 rows affected (0.00 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.00 sec)

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

La 6ème tentative a donc été la bonne. Des droits ont été accordés sur le compte d'accès à la base de données. Mais ils 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

La base étant mise à jour, il est donc nécessaire de modifier la configuration Apache, voir Publication sous Apache, pour pointer sur la nouvelle instance. Le fichier de configuration se trouve à l'emplacement /etc/mediawiki/apache.conf est les emplacements sont modifiés ainsi:

# Uncomment this to add an alias.
# This does not work properly with virtual hosts..
Alias /wiki /var/lib/mediawiki-1.18.0

<Directory /var/lib/mediawiki_1.18.0/>
        Options +FollowSymLinks
        AllowOverride All
        order allow,deny
        allow from all
</Directory>

# some directories must be protected
<Directory /var/lib/mediawiki-1.18.0/config>
        Options -FollowSymLinks
        AllowOverride None
</Directory>
<Directory /var/lib/mediawiki_1.18.0/upload>
        Options -FollowSymLinks
        AllowOverride None
</Directory>


Icon ACL.png Sécurité des fichiers

Pour un peu plus de sécurité sur le serveur, les droits d'accès sur les fichiers installés sont modifiés ainsi:

#sudo chown -R www-data:www-data /var/lib/mediawiki-1.18.0


Lien maintenance

Le lien vers le répertoire maintenance a été mis en place. Cependant, pour éviter d'exposer ces fichiers, le lien est cassé après la mise à jour.

#sudo rm /var/lib/mediawiki-1.18.0/maintenance