Mediawiki Update Version 1.15.0 vers 1.17.0

De EjnTricks
Révision de 2 janvier 2014 à 12:17 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 sur Ubuntu. 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.


Hand-icon.png Votre avis

Current user rating: 95/100 (1 votes)

 You need to enable JavaScript to vote


Icon-database-backup.png Backup

La base de donnée est sauvegardée à l'aide d'un dump MySql:

#/usr/bin/mysqldump --user=root -p --default-character-set=latin1 -c --skip-set-charset wikidb > dump.sql

Ici, la base de données est wikidb. Le dump est généré dans le fichier dump.sql.

Trois répertoires sont également sauvegardés, et placé dans le répertoire /opt/mediawiki_backup:

#sudo mkdir /opt/mediawiki_backup
#sudo mkdir /opt/mediawiki_backup/etc
#sudo mkdir /opt/mediawiki_backup/etc/mediawiki
#sudo cp -R /etc/mediawiki/* /opt/mediawiki_backup/etc/mediawiki/
#sudo mkdir /opt/mediawiki_backup/var
#sudo mkdir /opt/mediawiki_backup/var/lib
#sudo mkdir /opt/mediawiki_backup/var/lib/mediawiki
#sudo cp -R /var/lib/mediawiki/* /opt/mediawiki_backup/var/lib/mediawiki/
#sudo mkdir /opt/mediawiki_backup/usr
#sudo mkdir /opt/mediawiki_backup/usr/share
#sudo mkdir /opt/mediawiki_backup/usr/share/mediawiki
#sudo cp -R /usr/share/mediawiki/* /opt/mediawiki_backup/usr/share/mediawiki/
 cp: impossible d'évaluer «/usr/share/mediawiki/AdminSettings.php»: Aucun fichier ou dossier de ce type
 cp: omission du répertoire «/usr/share/mediawiki/config»
 cp: omission du répertoire «/usr/share/mediawiki/extensions»
 cp: omission du répertoire «/usr/share/mediawiki/images»
 cp: omission du répertoire «/usr/share/mediawiki/includes»
 cp: omission du répertoire «/usr/share/mediawiki/languages»
 cp: omission du répertoire «/usr/share/mediawiki/maintenance»
 cp: omission du répertoire «/usr/share/mediawiki/skins»


Icon Folder analyze.png Analyse installation précédente version

L'installation initiale depuis les paquets met en place un ensemble de lien. Afin de conserver cette logique, il est nécessaire d'étudier cette organisation pour essayer de la reproduire:

Composition du répertoire /etc/mediawiki:

drwxr-xr-x   2 www-data www-data  4096 2011-11-12 22:37 ./
drwxr-xr-x 157 root     root     12288 2011-11-11 11:26 ../
-rw-r--r--   1 www-data www-data   470 2010-12-14 21:10 apache.conf
-rw-------   1 www-data www-data  5368 2011-11-12 22:32 LocalSettings.php

Composition du répertoire /var/lib/mediawiki:

lrwxrwxrwx  1 root     root       32 2011-08-19 22:18 AdminSettings.php -> /etc/mediawiki/AdminSettings.php
lrwxrwxrwx  1 root     root       28 2011-08-19 22:18 api.php -> /usr/share/mediawiki/api.php
drwx------  2 www-data www-data 4096 2011-10-19 23:50 config/
drwxr-xr-x  7 www-data www-data 4096 2011-10-19 23:50 extensions/
drwx------ 22 www-data www-data 4096 2010-12-14 21:35 images/
lrwxrwxrwx  1 root     root       33 2011-08-19 22:18 img_auth.php -> /usr/share/mediawiki/img_auth.php
lrwxrwxrwx  1 www-data www-data   29 2010-12-14 21:06 includes -> /usr/share/mediawiki/includes/
lrwxrwxrwx  1 root     root       30 2011-08-19 22:18 index.php -> /usr/share/mediawiki/index.php
lrwxrwxrwx  1 root     root       38 2011-08-19 22:18 install-utils.inc -> /usr/share/mediawiki/install-utils.inc
lrwxrwxrwx  1 www-data www-data   30 2010-12-14 21:06 languages -> /usr/share/mediawiki/languages/
lrwxrwxrwx  1 root     root       32 2011-08-19 22:18 LocalSettings.php -> /etc/mediawiki/LocalSettings.php
lrwxrwxrwx  1 www-data www-data   32 2010-12-14 21:06 maintenance -> /usr/share/mediawiki/maintenance/
lrwxrwxrwx  1 root     root       40 2011-08-19 22:18 opensearch_desc.php -> /usr/share/mediawiki/opensearch_desc.php
lrwxrwxrwx  1 root     root       36 2011-08-19 22:18 profileinfo.php -> /usr/share/mediawiki/profileinfo.php
lrwxrwxrwx  1 root     root       33 2011-08-19 22:18 redirect.php -> /usr/share/mediawiki/redirect.php
lrwxrwxrwx  1 root     root       35 2011-08-19 22:18 redirect.phtml -> /usr/share/mediawiki/redirect.phtml
lrwxrwxrwx  1 www-data www-data   26 2010-12-14 21:06 skins -> /usr/share/mediawiki/skins/
lrwxrwxrwx  1 root     root       38 2011-08-19 22:18 StartProfiler.php -> /usr/share/mediawiki/StartProfiler.php
lrwxrwxrwx  1 root     root       30 2011-08-19 22:18 thumb.php -> /usr/share/mediawiki/thumb.php
lrwxrwxrwx  1 root     root       34 2011-08-19 22:18 trackback.php -> /usr/share/mediawiki/trackback.php
lrwxrwxrwx  1 root     root       31 2011-08-19 22:18 wiki.phtml -> /usr/share/mediawiki/wiki.phtml

Ce répertoire ne contient donc que des liens vers les fichiers dans /usr/share/mediawiki. Les répertoires config, extensions et images sont spécifiques à cette implémentation, ainsi que les liens LocalSettings.php et AdminSettings.php, qui n'existe pas d'ailleurs. Cette organisation est très pertinentes pour l'installation de plusieurs Wiki, mais partageant les mêmes sources.

Composition du répertoire /usr/share/mediawiki:
lrwxrwxrwx   1 root     root        36 2011-08-19 22:18 AdminSettings.php -> /var/lib/mediawiki/AdminSettings.php
-rw-r--r--   1 root     root      3321 2009-05-05 16:07 api.php
lrwxrwxrwx   1 www-data www-data    25 2010-12-14 21:06 config -> /var/lib/mediawiki/config/
lrwxrwxrwx   1 www-data www-data    29 2010-12-14 21:06 extensions -> /var/lib/mediawiki/extensions/
lrwxrwxrwx   1 www-data www-data    25 2010-12-14 21:06 images -> /var/lib/mediawiki/images/
-rw-r--r--   1 root     root      3192 2009-03-21 17:48 img_auth.php
drwxr-xr-x  13 www-data www-data 20480 2011-10-19 23:50 includes/
-rw-r--r--   1 root     root      4281 2009-03-20 13:00 index.php
-rw-r--r--   1 root     root      5839 2010-03-08 18:42 install-utils.inc
drwxr-xr-x   4 www-data www-data  4096 2011-10-19 23:50 languages/
lrwxrwxrwx   1 root     root        36 2011-08-19 22:18 LocalSettings.php -> /var/lib/mediawiki/LocalSettings.php
drwxr-xr-x  12 www-data www-data 20480 2011-10-19 23:50 maintenance/
-rw-r--r--   1 root     root      3054 2009-03-21 17:48 opensearch_desc.php
-rw-r--r--   1 root     root      9345 2010-07-27 09:56 profileinfo.php
-rw-r--r--   1 root     root       383 2009-03-21 17:48 redirect.php
-rw-r--r--   1 root     root        91 2005-01-31 21:35 redirect.phtml
drwxr-xr-x   9 www-data www-data  4096 2011-10-19 23:50 skins/
-rw-r--r--   1 root     root       603 2009-01-07 22:11 StartProfiler.php
-rw-r--r--   1 root     root      4905 2010-03-08 23:49 thumb.php
-rw-r--r--   1 root     root      1347 2008-11-05 17:54 trackback.php
-rw-r--r--   1 root     root        88 2005-01-31 21:35 wiki.phtml
En conclusion, ce répertoire contient les "binaires" de MediaWiki. Quelques liens sont mis en place vers l'implémentation par défaut faite sous /var/lib/mediawiki.


Process-Icon.png Installation nouvelle version

Le fichier mediawiki-1.17.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.17.0.tar.gz
#sudo chown -R www-data:www-data /usr/share/mediawiki-1.17.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.17.0
#sudo cp -R /var/lib/mediawiki/extensions /var/lib/mediawiki-1.17.0
#sudo cp -R /var/lib/mediawiki/images /var/lib/mediawiki-1.17.0
#sudo ln -s /etc/mediawiki/AdminSettings.php /var/lib/mediawiki-1.17.0/AdminSettings.php
#sudo ln -s /etc/mediawiki/LocalSettings.php /var/lib/mediawiki-1.17.0/LocalSettings.php
#sudo ln -s /usr/share/mediawiki-1.17.0/api.php /var/lib/mediawiki-1.17.0/api.php
#sudo ln -s /usr/share/mediawiki-1.17.0/api.php5 /var/lib/mediawiki-1.17.0/api.php5
#sudo ln -s /usr/share/mediawiki-1.17.0/bin /var/lib/mediawiki-1.17.0/bin
#sudo ln -s /usr/share/mediawiki-1.17.0/cache /var/lib/mediawiki-1.17.0/cache
#sudo ln -s /usr/share/mediawiki-1.17.0/img_auth.php /var/lib/mediawiki-1.17.0/img_auth.php
#sudo ln -s /usr/share/mediawiki-1.17.0/img_auth.php5 /var/lib/mediawiki-1.17.0/img_auth.php5
#sudo ln -s /usr/share/mediawiki-1.17.0/includes /var/lib/mediawiki-1.17.0/includes
#sudo ln -s /usr/share/mediawiki-1.17.0/index.php /var/lib/mediawiki-1.17.0/index.php
#sudo ln -s /usr/share/mediawiki-1.17.0/index.php5 /var/lib/mediawiki-1.17.0/index.php5
#sudo ln -s /usr/share/mediawiki-1.17.0/languages /var/lib/mediawiki-1.17.0/languages
#sudo ln -s /usr/share/mediawiki-1.17.0/load.php /var/lib/mediawiki-1.17.0/load.php
#sudo ln -s /usr/share/mediawiki-1.17.0/load.php5 /var/lib/mediawiki-1.17.0/load.php5
#sudo ln -s /usr/share/mediawiki-1.17.0/math /var/lib/mediawiki-1.17.0/math
#sudo ln -s /usr/share/mediawiki-1.17.0/mw-config /var/lib/mediawiki-1.17.0/mw-config
#sudo ln -s /usr/share/mediawiki-1.17.0/opensearch_desc.php /var/lib/mediawiki-1.17.0/opensearch_desc.php
#sudo ln -s /usr/share/mediawiki-1.17.0/opensearch_desc.php5 /var/lib/mediawiki-1.17.0/opensearch_desc.php5
#sudo ln -s /usr/share/mediawiki-1.17.0/php5.php5 /var/lib/mediawiki-1.17.0/php5.php5
#sudo ln -s /usr/share/mediawiki-1.17.0/profileinfo.php /var/lib/mediawiki-1.17.0/profileinfo.php
#sudo ln -s /usr/share/mediawiki-1.17.0/redirect.php /var/lib/mediawiki-1.17.0/redirect.php
#sudo ln -s /usr/share/mediawiki-1.17.0/redirect.php5 /var/lib/mediawiki-1.17.0/redirect.php5
#sudo ln -s /usr/share/mediawiki-1.17.0/redirect.phtml /var/lib/mediawiki-1.17.0/redirect.phtml
#sudo ln -s /usr/share/mediawiki-1.17.0/resources /var/lib/mediawiki-1.17.0/resources
#sudo ln -s /usr/share/mediawiki-1.17.0/serialized /var/lib/mediawiki-1.17.0/serialized
#sudo ln -s /usr/share/mediawiki-1.17.0/skins /var/lib/mediawiki-1.17.0/skins
#sudo ln -s /usr/share/mediawiki-1.17.0/StartProfiler.sample /var/lib/mediawiki-1.17.0/StartProfiler.sample
#sudo ln -s /usr/share/mediawiki-1.17.0/thumb.php /var/lib/mediawiki-1.17.0/thumb.php
#sudo ln -s /usr/share/mediawiki-1.17.0/thumb.php5 /var/lib/mediawiki-1.17.0/thumb.php5
#sudo ln -s /usr/share/mediawiki-1.17.0/trackback.php /var/lib/mediawiki-1.17.0/trackback.php
#sudo ln -s /usr/share/mediawiki-1.17.0/trackback.php5 /var/lib/mediawiki-1.17.0/trackback.php5
#sudo ln -s /usr/share/mediawiki-1.17.0/wiki.phtml /var/lib/mediawiki-1.17.0/wiki.phtml


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 que le fichier /var/lib/mediawiki/maintenance/install-utils.inc n'est pas trouvé. L'emplacement du fichier est tout simplement erroné. Il aurait du être recherché à l'emplacement /var/lib/mediawiki-1.17.0/maintenance/install-utils.inc. En fait, il y a un paramètre dans le fichier LocalSettings.php indiquant l'emplacement d'installation. Or ceci n'a pas été modifié. Il faut mettre à jour la valeur du paramètre MW_INSTALL_PATH, après sauvegarde du précédent fichier pour un peu plus de sécurité en cas de fausse manipulation.

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


Le message d'erreur indique donc la nécessité du privilège de création de tables au niveau de la base de données. Ce privilège est accordé par la commande SQL suivante, sous Mysql:

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

mysql> FLUSH PRIVILEGES;
Query OK, 0 ROWS affected (0.00 sec)
Le message d'erreur indique donc la nécessité du privilège de création d'index au niveau de la base de données. Ce privilège est accordé par la commande SQL suivante, sous Mysql:
 grant index on wikidb.* to 'wikiuser'@'localhost';

Le message d'erreur indique donc la nécessité du privilège de modification de tables au niveau de la base de données. Ce privilège est accordé par la commande SQL suivante, sous Mysql:

mysql> GRANT ALTER 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.17.0

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

# some directories must be protected
<Directory /var/lib/mediawiki-1.17.0/config>
        Options -FollowSymLinks
        AllowOverride None
</Directory>
<Directory /var/lib/mediawiki_1.17.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.17.0