LINUX:MediaWiki - Récupération des paquets et mise en place

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

retour au menu de MediaWiki


But

On doit récupérer les différents paquets (MediaWiki, Extensions, Skins). Ensuite on met en place le logiciel.

La distribution de Linux-Fedora comporte le paquet MediaWiki mais par le passé j'ai eu des déboires quelques fois lors de mises-à-jour. Je préfère effectuer les installations et migrations après vérifications approfondies en parallèle à l'installation en production.

Et donc j'opte pour des téléchargements directement sur le site officiel de MediaWiki.


Script

J'ai longtemps effectué des téléchargements directs et manuels suivis de la décompression. Mais maintenant j'utilise un script qui effectue cette tâche en une fois.

Voici son contenu:


#!/bin/bash
############################################################
#
# Récupération de MediaWiki, d'extensions et de skins
#
############################################################
 
############################################################
# Paramètres à adapter
 
# MediaWiki
VERSIONm="1.39"
URLm="https://releases.wikimedia.org/mediawiki/"
 
# Extensions
VERSIONe="1_39"
URLe="https://extdist.wmflabs.org/dist/extensions/"
LISTEe="WikiSEO CodeMirror AdminLinks NewestPages Collection Lockdown NSFileRepo MobileFrontend PageForms Arrays Loops Variables"
 
# Skins
VERSIONs="1_39"
URLs="https://extdist.wmflabs.org/dist/skins/"
LISTEs="CologneBlue Modern"
############################################################
 
# Nettoyage
/usr/bin/rm -f liste*.txt
/usr/bin/rm -f *.tar.gz
 
# MediaWiki
#    Récupération de la liste
wget -O listem.txt ${URLm}${VERSIONm}/
#    Sélection de la version la plus récente
LISTE=`/usr/bin/grep "mediawiki-${VERSIONm}." listem.txt | /usr/bin/grep ".tar.gz\"" | /usr/bin/awk -F "\"" '{printf("%s\n",$6)}' | /usr/bin/awk -F "." '{printf("%s ",$3)}' | /usr/bin/awk -F "-" '{printf("%s ",$1)}'`
NO=-1
for F1 in $LISTE
do
 if [ "$F1" -gt "$NO" ]; then
  NO=$F1
 fi
done
#    Téléchargement
wget ${URLm}${VERSIONm}/mediawiki-${VERSIONm}.${NO}.tar.gz
 
# Extensions
#    Récupération de la liste
wget -O listee.txt ${URLe}
#    Téléchargement
for F1 in $LISTEe
do
 FICHIER=`/usr/bin/grep ${F1}-REL${VERSIONe} listee.txt | /usr/bin/awk -F "\"" '{printf("%s ",$2)}' `
 for F2 in $FICHIER
 do
  F3=`echo $F2 | /usr/bin/grep ^${F1}`
  if [ "$F3" != "" ]; then
   wget ${URLe}$F2
  fi
 done
done
 
# Skins
#    Récupération de la liste
wget -O listes.txt ${URLs}
#    Téléchargement
for F1 in $LISTEs
do
 FICHIER=`/usr/bin/grep ${F1}-REL${VERSIONs} listes.txt | /usr/bin/awk -F "\"" '{printf("%s ",$2)}' `
 for F2 in $FICHIER
 do
  F3=`echo $F2 | /usr/bin/grep ^${F1}`
  if [ "$F3" != "" ]; then
   wget ${URLs}$F2
  fi
 done
done
 
# Décompression
LISTEgz=`ls *.gz`
for F in $LISTEgz
do
 echo $F
 tar xvpzf $F
done

En début de script, on trouve quelques paramètres. Il y a trois sections: l'une pour le paquet MediaWiki, la seconde pour les extensions et la dernière pour les habillages.

Le premier paramètre désigne le n° de version (variables respectivement "VERSIONm", "VERSIONe" et "VERSIONs"). Ici, elles correspondent à la version 1.39 de MediaWiki. Notez les formats différents correspondants aux noms des fichiers à télécharger. Ils sont à adapter selon l'évolution des versions.

Le second paramètre correspond à la base des URLs où se trouvent les fichiers à télécharger. Normalement ils ne devraient pas changer.

Enfin le troisième paramètre pour les extensions (variable "LISTEe") et les habillages (variable "LISTEs") listent respectivement les noms des modules à récupérer. Ils sont à adapter selon vos désirs.


Arrivent ensuite une suite de blocs.

  • le nettoyage préalable d'un traitement précédent.
  • le traitement pour le paquet de MediaWiki
  • le traitement pour les extensions
  • le traitement pour les habillages
  • la décompression des fichiers téléchargés

Chaque traitement débute par la création d'une liste des fichiers disponibles, suivi par le repérage du fichier à récupérer et se termine par le téléchargement proprement dit. Dans cas du paquet MediaWiki, on sélectionne le numéro de sous-version le plus haut.

Attention le nettoyage n'inclut pas l'élimination des répertoires résultants de la décompression. Il serait préférable de les éliminer également.

Ce traitement sera utilisé aussi bien lors de la première installation que lors des changements de versions.


Mise en place

La première étape consiste à mettre en place le logiciel MediaWiki. Nous allons le mettre, par exemple, dans le répertoire "/web/wiki.39" que nous créons. Tout le contenu du répertoire décompressé ci-dessus ("mediawiki-1.39.6" selon notre exemple) du logiciel MediaWiki est déplacé dans ce répertoire.

La seconde étape consiste à déplacer tels quels les répertoires des extensions décompressées dans le sous-répertoire réservés aux extensions: "/web/wiki.39/extensions". Par exemple l'extension "AdminLinks" donne le répertoire décompressé "AdminLinks". Il devient au final "/web/wiki.39/extensions/AdminLinks" après déplacement.

De même les habillages (skins) sont déplacés dans le sous-répertoire "/web/wiki.39/skins".


Composer

La majorité des extensions se font par téléchargement d'un fichier compressé. Mais quelques uns ne sont disponibles qu'au travers du logiciel "composer".

Au préalable, il faut installer ce logiciel:

dnf install composer

Les extensions qui nous concernent sont du groupe "Semantic".

L'opération qui suit est à faire après mise en place du contenu du répertoire du logiciel MediaWiki comme décrit ci-dessus.

Dans le répertoire du logiciel ("/web/wiki.39" selon notre exemple), on y crée le fichier "composer.local.json". Nous voulons installer les deux extensions suivantes: Semantic-MediaWiki et "Semantic-Result-Formats". Sur Internet, on se renseigne du contenu à ajouter spécialement le numéro de version, auprès du guide d'installation de ces extensions.

Voici le contenu du fichier au format JSON:


{
   "require": {
                 "mediawiki/semantic-media-wiki": "~4.1",
                 "mediawiki/semantic-result-formats": "~4.2"
              }
}

N'oubliez pas la virgule séparant les deux extensions.

On se place dans le répertoire de MediaWiki ("/web/wiki.39) où se trouve ce fichier nouvellement créé et on exécute la commande suivante.

composer  update --no-dev -o

L'option "--no-dev" spécifie qu'on n'installe pas la version en cours de développement.


Propriétaire et droits d'accès

Toute cette nouvelle arborescence doit être être adaptée pour pouvoir être utilisée par le service Web HTTPD.

On doit attribuer la propriété à l'utilisateur du service HTTPD, c'est à dire "apache":

chown -R apache:apache /web/wiki.39

Ensuite on rectifie les droits d'accès:

chmod -R 540 /web/wiki.39
chmod -R 740 /web/wiki.39/images
chmod -R 740 /web/wiki.39/cache

On remarque que le répertoire "images" doit avoir tous les droits afin de pouvoir y mettre les documents téléchargés.

Si vous utilisez SELinux, n'oubliez pas d'ajouter le contexte approprié "httpd_sys_content_t".




retour au menu de MediaWiki