Installer MediaWiki rapidement

De Analyse Développement Hacking
Sauter à la navigation Sauter à la recherche

Glider.png

Le wiki : Accueil - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack

Le site : Accueil - Annuaire - Blog - Forum - Outils - Utilisateur
Le FTP : Consulter les fichiers partagés sur le FTP
Le Redmine : Consulter le Redmine

Installer MediaWiki rapidement

Télécharger MediaWiki

Site officiel en française : https://www.mediawiki.org/wiki/MediaWiki/fr
Site officiel en anglais : https://www.mediawiki.org/wiki/MediaWiki
Version actuelle de Mediawiki lors de la dernière édition de cette page : 1.33.1 stable.
Télécharger la dernière version de Mediawiki : https://www.mediawiki.org/wiki/Download/fr
Télécharger la dernière version de Mediawiki 1.33.1 stable : https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.1.tar.gz
sudo wget https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.1.tar.gz
sudo tar xzvf mediawiki-1.33.1.tar.gz

Installer MediaWiki

Déposer la dernière archive décompressée de MediaWiki sur le serveur dédié ou mutualisé.
Un fichier INSTALL accompagne à l'installation de Media Wiki : https://phabricator.wikimedia.org/diffusion/MW/browse/REL1_27/INSTALL
Accéder à la page d'accueil du wiki : www.domaine.ext/wiki/index.php?Accueil
L'installation n'ayant pas encore été faite, je suis redirigé automatiquement vers la page d'installation : www.domaine.ext/wiki/mw-config/index.php

Installation simple et rapide

Déplacer le dossier Mediawiki sur son serveur

Que ce soit un serveur mutualisé ou dédié, ajouter le dossier Mediawiki dans votre espace web.

Créer la base de données MariaDB pour Mediawiki

su
mysql -u root -p
CREATE DATABASE wikidb;
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wikidb.* TO 'wikiuser'@'localhost' WITH GRANT OPTION;

# Si la base de données ne fonctionne pas sur le même serveur que votre serveur Web, indiquer le nom d'hôte du serveur Web approprié :
GRANT ALL PRIVILEGES ON wikidb.* TO 'wikiuser'@'mediawiki.example.com' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;
EXIT;
Ok-ko.png Source : https://www.mediawiki.org/wiki/Manual:Installing_MediaWiki/fr
Ok-ko.png Source : https://www.mediawiki.org/wiki/Manual:Installing_MediaWiki#Create_a_database

Lancer l'installation

Bienvenue sur MediaWiki !
Vérifications liées à l’environnement
Des vérifications de base vont maintenant être effectuées pour voir si cet environnement est adapté à l’installation de MediaWiki. Rappelez-vous d’inclure ces informations si vous recherchez de l’aide sur la manière de terminer l’installation.
PHP 5.6.21 est installé.
Attention : Impossible de trouver APC, XCache ou WinCache.
La mise en cache d'objets n'est pas activée.
GNU diff3 introuvable.
La bibliothèque graphique GD intégrée a été trouvée.
La miniaturisation d'images sera activée si vous activez le téléversement de fichiers.
Logiciel de contrôle de version Git non trouvé.
Utilisation du nom de serveur " Votre Domaine ".
Utilisation de l'URL de serveur " Votre Domaine/wiki ".
Attention: Votre répertoire par défaut pour les téléchargements, /htdocs/wiki/images/, est vulnérable, car il peut exécuter n'importe quel script.
Bien que MediaWiki vérifie tous les fichiers téléchargés, il est fortement recommandé de fermer cette vulnérabilité de sécurité (texte en anglais) avant d'activer les téléchargements.
Utilisation de l'extension PECL intl pour la normalisation Unicode.
L’environnement a été vérifié. Vous pouvez installer MediaWiki.
Sélection de la base de données.
Ajouter le préfixe de la base de données : xyz_uvw_
Félicitations! Vous avez réussi à installer MediaWiki.
Le programme d'installation a généré un fichier LocalSettings.php. Il contient tous les paramètres de votre configuration.
Vous devrez le télécharger et le mettre à la racine de votre installation wiki (dans le même répertoire que index.php).

Depuis un terminal GNU/Linux

Vérifier les propriétaires groupes et droits

Rendre www-data propriétaire du wiki.
www-data devient propriétaire du dossier wiki de façon récursive.
chown www-data:www-data wiki/ -R
On sécurise le fichier LocalSettings.
chmod 600 LocalSettings.php

Mise à jour de Mediawiki

Mise à jour de Mediawiki.

Vérifier la version de MediaWiki

Vérifier la version de MediaWiki et des extensions depuis la page Spécial:Version.

Sauvegarder les dossiers de votre installation Mediawiki

Avant de lancer une mise à jour, sauvegarder les dossiers et fichiers ainsi que la base de données du site Mediawiki.
Certains dossiers et fichiers de votre sauvegarde seront à déplacer vers la nouvelle installation de Mediawiki.
1- Conserver le fichier LocalSettings.php
Comparer votre fichier LocalSettings.php avec celui de la nouvelle installation.
Faire les modifications du nouveau fichier LocalSettings.php généré en ajoutant votre configuration précédente.
Tester l'ajout de votre configuration pour un seul plugin à la fois, pour bien s'assurer du bon fonctionnement du plugin.
2- Conserver les répertoires "images" et "resources/assets/".
3- Conserver les répertoires "extensions". Dans mon cas je ne conserve que le dossier "images" car les extensions sont désactivées avant la mise à jour.
4- Conserver le répertoire de téléchargement personnalisé ($ wgUploadDirectory)
Valeur par défaut : "{$IP}/images"
C'est le dossier images qui est concerné dans mon cas, donc, déjà sauvegardé.
5- Conserver les archives des fichiers supprimés et toutes les enveloppes personnalisées.
Je n'ai pas encore trouvé comment faire, et, depuis, j'ai effectué une dizaine de mises à jour.
Ça ne semble pas indispensable à la bonne maintenance de Mediawiki.

Procédure pour la mise à jour de MediaWiki

Désactiver le .htaccess si besoin pour permettre un bon fonctionnement de l'installation.

Mise à jour de la base de données avec une URL

Changer le nom du dossier du wiki à mettre à jour en oldwiki.
Créer un nouveau dossier wiki et ajouter les dossiers et fichiers de la nouvelle version de MediaWiki à mettre à jour.
Ajouter le fichier LocalSettings.php et vérifier son contenu. (Enlever le code d'un éventuel Bridge obsolète ou d'une extension obsolète.)
Lancer la mise à jour de la base de données depuis Votre Domaine/wiki/mv-config/index.php
La mise à jour de la BDD semble aboutir sans erreurs.
Le site affiche une page blanche malgré la mise à jour de la base de données.
Cette page blanche était due dans mon cas à un Bridge qui n'a pas été retiré du fichier LocalSettings.php.
Hormis ce détail, la procédure décrite fonctionne pour mettre son wiki à jour.
Si la mise à jour ne fonctionne pas, avec le message d'erreur suivant :
Exemple d'erreur avec la mise à jour par URL :
404 - Composant introuvable
Vous ne pouvez pas visiter cette page car :bookmark/favori périmé
Un moteur de recherche possède un listing périmé pour ce site
une adresse erronée
vous n'avez pas accès à cette page
La ressource demandée n'a pas été trouvée.
Une erreur est survenue pendant l'exécution de la requête.
Tenter de faire la mise à jour mais sans avoir le fichier LocalSettings.php de renseigné.
Le fichier sera générer lors de l'installation.
Ajouter dans ce nouveau fichier LocalSettings.php généré les éléments supplémentaires qui pourraient se trouver dans votre version en production.

Mise à jour de la base de données avec une nouvelle installation

La procédure de mise à jour de la base de données par URL peut ne pas fonctionner.
Préférer alors une nouvelle installation, qui est une bonne façon d'obtenir un Mediawiki sain.
Changer le nom du dossier du wiki à mettre à jour en oldwiki.
Télécharger l'archive de la dernière version de Mediawiki dans un dossier nommé wiki sur votre serveur.
Ajouter les dossiers et les fichiers conservés depuis la sauvegarde de votre wiki.
Depuis le navigateur, lancer l'installation depuis le nouveau dossier avec les nouveaux fichiers du wiki.
Vérifications liées à l’environnement. Continuer. Normalement, rien n'est à faire ici puisque l'environnement n'a pas changé.
Configurer l'accès à la base de données de production, les informations de connexion se trouvent dans la sauvegarde de votre wiki.
Si vous n'avez pas fait de sauvegarde de la base de données, il est fortement conseillé de faire une sauvegarde avant l'étape à venir.
Il y a des tables MediaWiki dans cette base de données. Pour les mettre au niveau de MediaWiki x.xx.x, cliquez sur Continuer. Lancer l'installation sur la base existante de production.
Mise à jour terminée. Régénérer votre fichier LocalSettings.php.
Utilisez le même compte que pour l'installation. Moteur de stockage : InnoDB.
Le nom du wiki et l'espace de noms du projet peut être retrouvés également depuis votre ancien fichier LocalSettings.php en cherchant les deux variables suivantes : $wgSitename et $wgMetaNamespace.
Ajouter le même utilisateur root que pour votre ancien wiki, ou alors, créer un nouveau profil root.
Sauvegarder le fichier LocalSettings.php qui est généré à neuf a la fin de cette installation.
Cette installation a mis à jour les fichiers de Mediawiki et sa base de données avec les derniers correctifs.
Ajouter le fichier LocalSettings.php par celui utilisé avant cette mise à jour, sur le site de production.
Vérifier les paramètres de connexion à la base de données dans le fichier LocalSettings.php.
Le wiki devrait être à jour et fonctionnel.
Une erreur sur une miniature qui ne s'affiche pas a été corrigée.
Éditer l'article source permet l'affichage de la miniature.

Tester la mise à jour

Vérifier que les vues de page et les modifications fonctionnent normalement et que les pages spéciales continuent de fonctionner.
Tester toutes les extensions et les mettre à niveau si nécessaire.
Gérer et installer des extensions avec MediaWiki : https://www.visionduweb.eu/wiki/index.php?title=Gerer_et_installer_des_extensions_avec_MediaWiki

Suivi des versions installées de Mediawiki

Version actuelle sur le serveur local Xamp : Mediawiki 1.33.1 - Stable.
Version actuelle sur wiki.visionduweb.fr : MediaWiki 1.33.1 - Stable.
Version actuelle sur NORML France : MediaWiki 1.33.1 - Stable.

Suivi de maintenance suite aux différentes mises à jour

Réduire le poids de la table _text

Depuis la mise à jour vers la versions 1.33.1 ou depuis l'ajout de paramètres dans la configuration de MariaDB la table _text prend du volume qui ne semble plus se réduire.
Une issue est ouverte, suite à l'augmentation anormale du volume stocké, qui n'est plus effacé avec les scripts de maintenance : https://phabricator.wikimedia.org/T239104
Une réinstallation de Mediawiki 1.33.1 et relancer les commandes de maintenance de la base de données ne change rien.
J'en arrive à réinstaller totalement Mediawiki dans une nouvelle version dans laquelle je réimporte les articles.
A première vue, le résultat est intéressant en ce qui concerne le poids général de la base de données, et, il devrait y avoir moins d'erreurs dans la base qui datait de la version 1.27.1 de Mediawiki.
D'une table _text qui faisait 55.5 Mo sur l'ancien wiki, la table _text est passée à 6.5Mo avec l'intégralité du contenu des articles.
La table semble être passée à 9.5Mo après la réimportation des images, ce qui voudrait dire que la table _text ajoute des informations complémentaires liées au images ?
L'encodage avec les 4 options dont barracuda, pour UTF-8mb4, depuis MariaDB, mais également, la façon de créer la base de donner initiale de Mediawiki, pourrait encore poser des problèmes.
Il faudra vérifier à l'usage si le Wiki fonctionne correctement, et, si la base de données prend du volume anormalement.
Si c'est le cas il faudra à nouveau créer une nouvelle installation pour utiliser une version stable et optimisée.

Problème de journalisation des utilisateurs qui ne sont plus affichés dans la base de données

La journalisation des utilisateurs ne semble toujours pas afficher le nom d'utilisateur dans la table _logging, et, le champ log_user, lors de la création d'un nouvel article.
Si je tente d'ajouter manuellement le 0 par défaut par mon nom d'utilisateur, le message d'erreur suivant est affiché :
UPDATE `prefixe_logging` SET `log_user` = 'USER_WIKI' WHERE ... MySQL a répondu : #1366 - Incorrect integer value: 'USER_WIKI' for column `MY_TABLE`.`prefixe_logging`.`log_user` at row 1
On obtient cette erreur lorsque votre script PHP fournit une chaîne de caractère alors que MySQL attend un entier.
Je change la structure de la colonne log_user depuis la table prefixe_logging :
Le champ log_user est défini pour le Type INT de taille 10, Valeur par défaut Tel que défini : 0, Interclassement aucun, Attributs UNSIGNED, Null est coché.
Le champ log_user est redéfini pour le Type VARCHAR de taille 10, Valeur par défaut Aucune, Interclassement utf8mb4_unicode_ci, Attributs aucun, Null est décoché.
Une nouvelle création de page devrait à nouveau afficher le nom d'utilisateur ? Non, cela ne fonctionne pas, plus aucune valeur n'est stockée.
Je remet la configuration précédente, même si elle ne fonctionne pas non plus :
Le champ log_user est défini pour le Type INT de taille 10, Valeur par défaut Tel que défini : 0, Interclassement aucun, Attributs UNSIGNED, Null est coché.
La page vers le manuel de cette table affiche également la structure de cette table en fonction des différentes versions de Mediawiki : https://www.mediawiki.org/wiki/Manual:Logging_table

Une autre proposition vue sur un forum serait de commenter la configuration de MariaDB pour le paramètre sql-mode="" et son contenu et le remplacer par sql-mode="".
Je ne suis pas convaincu qu'il faille en passer par la et se priver de cette configuration. Le but n'est pas de ne pas voir le message d'erreur mais de faire fonctionner la journalisation de Mediawiki.
Voir sinon à enlever les valeurs ajoutées dans la configuration de MariaDB et à redémarrer MariaDB, pour tester sans la valeur Barracuda notamment.
Ne change rien, le pseudo de l'utilisateur qui crée une nouvelle page n'est plus inscrit dans la table _logging et la valeur par défaut 0 est appliquée.
En dernier recours, réinstaller Mediawiki sur un serveur MariaDB par défaut et vérifier si la table _logging intègre ou non le nom des utilisateurs ayant effectué une création de page dans le champ log_user.
Si ce n'est pas le cas, c'est que la dernière version de Mediawiki 1.33.1 a soir retiré cette fonctionnalité, soit rencontre un bogue.

Résolu - Préférer l'utilisation d'un nouveau fichier LocalSettings.php

Lors de la mise à jour vers Mediawiki, préférer une mise à jour avec la création d'un nouveau fichier LocalSettings.php
Si je tente de conserver mon ancien fichier LocalSettings.php j'ai une erreur à chaque fois avec le script DeletePagesForGood, malgré que le fichier ait été mis à jour.
Si je réinstalle un nouveau fichier LocalSettings.php et compare avec celui de la version précédente, les différences ne sont pas nombreuses.
Utiliser un nouveau fichier LocalSettings.php permet de suivre l'évolution de son paramétrage avec la précédente version de Mediawiki.

Résolu - DeletePagesForGood

Depuis Mediawiki 1.31.0 l'extension deletepageforgood doit être mise à jour pour empêcher la mise en erreur du wiki.
Dans le dossier extensions/deletepageforgood modifier le fichier ActionDeletePagePermanently.php par le code suivant : 
https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/DeletePagesForGood/+/dc43aa69c3901784fdd440e39277db27b382854a/ActionDeletePagePermanently.php
Depuis Mediawiki 1.29.0 / 1.29.1, DeletePagesForGood ne semble plus arriver à détruire les pages créées en version 1.28.0.
Astuce pour contourner ce problème et arriver à supprimer une page et son historique :
Supprimer la page normalement. Recréer la page. Détruire la page avec DeletePagesForGood.
Les nouvelles pages créées semblent bien pouvoir être détruites.
Un ticket de maintenance a été ouvert.

Résolu - Nuke

Depuis Mediawiki 1.31.0 il faut désactiver l'extension Nuke qui n'est plus présente par défaut.

Résolu - Captcha

Avec la version Mediawiki 1.30, le captcha QuestyCaptcha affiche une page blanche dans certaines conditions.
Relancer la page principale permet de revenir sur le wiki. La modification est prise en compte malgré tout.
QuestyCaptcha est fonctionnel depuis que l'extension de bannedips.php est désactivée.
Le captcha avec l'image fonctionne également.

Résolu - Banneips

Depuis Mediawiki 1.30, l'extension banneips fait boguer la page de connexion qui affiche une page blanche.
Pour corriger ce problème le tableau des ips doit être convertit en tableau indexé.
Je supprime cette extension qui ne semble pas fonctionner correctement pour le moment.
Un ticket de maintenance a été ouvert.

Warning sur Yuml

De nombreux warning sont affichés sur Xampp en local.

RSS

Depuis l'installation de Mediawiki 1.33.1 des erreurs sont affichés empêchant le rendu de la page dans laquelle a été ajouté le lien de requête pour le flux RSS.
Télécharger la nouvelle version : https://extdist.wmflabs.org/dist/extensions/RSS-REL1_33-e4dc10f.tar.gz
cd /wiki/extensions/
sudo rm -R RSS
sudo tar xzvf RSS-REL1_33-e4dc10f.tar.gz
sudo chown www-data:www-data -R RSS/
Résolu.

Bibliographie

Informations en anglais dans le fichier UPGRADE : https://phabricator.wikimedia.org/diffusion/MW/browse/REL1_27/UPGRADE
Mettre à jour version officielle en anglais : https://www.mediawiki.org/wiki/Manual:Upgrading
How to Install MediaWiki on Ubuntu 16.04/17.04 with Apache or Nginx : https://www.linuxbabe.com/ubuntu/how-to-install-mediawiki-ubuntu-16-04-apache-nginx

NAVIGATION

PARTICIPER ET PARTAGER

Bienvenue sur le wiki de Vision du Web.
De nombreuses pages sont partagées sur ce wiki.
Créer un compte utilisateur pour participer sur le wiki.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Utiliser la recherche interne du wiki pour trouver votre contenu.
La page de discussion de VisionDuWeb vous permet de poser une question.
Utiliser la recherche interne du site pour chercher dans tout le contenu.
Ce contenu ne doit pas servir à nuire à autrui ou à un système informatique.
Protéger votre système Linux ou Windows en lisant la page dédié à la sécurité.
Améliorer le contenu des pages avec vos propositions depuis l'onglet discussion.

SOUTENIR CE WIKI

Soutenir le wiki avec un don en monnaie numérique :
AEON - Bitcoins - Bitcoins Cash - Bitcoins Gold - Bitcore - Blackcoins - Basic Attention Token - Bytecoins - Clams - Dash - Monero - Dogecoins - Ğ1 - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash

OBTENIR DE LA MONNAIE NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Gagner des Altcoins - Miner des Altcoins.