# MediaWiki pour débutants/Mises à jour et maintenance
## Mise à jour de MediaWiki
### Vérifier votre configuration

D'une version à une autre, il se peut que la configuration nécessaire au fonctionnement de MediaWiki ne soit pas la même. Par exemple, pour MediaWiki 1.8, il faut PHP5. En outre, une mise à jour n'est pas nécessairement un avantage, car des extensions peuvent ne plus fonctionner, et il faudra attendre que quelqu'un s'en occupe pour pouvoir les réutiliser. Selon ce que vous faites de votre wiki, il peut donc être préférable de rester toujours à la même version de MediaWiki.

### Comment faire la mise à jour ?

Une mise à jour consiste à remplacer la version de MediaWiki que vous utilisez par une version plus récente. Une mise à jour ne diffère pas d'une procédure d'installation. En effet, tandis que les données de votre wiki sont conservés sur une base de données, la mise à jour consiste à installer la nouvelle version en entrant les mêmes informations que lors de la première installation (nom de la base de données, mot de passe, etc.).
Cependant, il vous faut conserver votre LocalSettings.php pour ne pas perdre par exemple l'installation des extensions.
D'une manière générale, pensez toujours à conserver les fichiers d'installation d'origine de votre Wiki, toutes ses extensions (version d'origine), notez toute modification que vous y avez apporté ainsi que tous les paramètres avant de procéder à une mise à jour. Une sauvegarde de la base de données est également plus que recommandée. En cas de pépin lors de la migration, vous pourrez ainsi toujours revenir en arrière et ne pas perdre le fruit de votre travail, sans oublier les contributions apportées par vos utilisateurs. Mieux vaut prévenir que guérir (voire tout perdre).

## Maintenance
### La base de données de votre wiki

* L'outil le plus connu pour gérer la base de données MySQL est PhpMyAdmin.
* Si les données que vous placez sur votre wiki commencent à prendre une place non négligeable, il sera utile de se servir des outils de maintenance de la base de données de PhMyAdmin.

#### PhpMyAdmin : Création d'un super-utilisateur wikidbadmin

À venir (Coming soon ...)

### Sauvegarde
#### Les bonnes pratiques pour vos sauvegardes

Le Wiki étant créé avec le logiciel Mediawiki, il faut penser à le sauvegarder pour le protéger d'une défaillance technique du serveur où il est en service.
Voici quelques règles en usage dans le milieu professionnel :
* Tout d'abord il faut conserver au moins trois copies du site. Pour cela un minimum consiste à réaliser une sauvegarde une fois par semaine.
* Ensuite il faut les réaliser sur deux types de supports différents
* Et il convient de toujours garder une copie à l'extérieur du site principal car si celui-ci est détruit (inondation, incendie ...) les copies suivent le même sort.
Une organisation possible des sauvegardes consiste donc à réaliser et à conserver au moins trois sauvegardes complètes automatisées sur le serveur distant et pour économiser des Go de mémoire, il convient de les télécharger régulièrement sur le PC et de les copier sur une clé USB de taille suffisante.
Pour terminer, de temps en temps, en fonction de la vie du site, il est nécessaire de tester une sauvegarde pour vérifier qu'elle est bien opérationnelle.

#### Hébergement mutualisé : sauvegarde complète avec Softaculous et Cpanel
##### Créer une sauvegarde complète

* Connecter vous avec vos identifiants à Cpanel, le logiciel qui gère tous les paramètres de votre hébergement mutualisé
* Cliquer sur le lien Softaculous dans la section Software / Services
* Dans le coin supérieur droit de la page, cliquer sur le lien Installation d'applications (c'est l'icône qui ressemble à une flèche orientée vers le bas)
* Dans la liste des applications, cliquer sur l'icône de sauvegarde (Backup) à l'extrême droite (qui ressemble à un dossier zippé) du site Web que vous souhaitez sauvegarder
* Sous la rubrique "Installation de sauvegarde", cocher les deux cases à droite pour sauvegarder :
** le répertoire des dossiers MediaWiki (Backup Directory).
** la base de données (Backup Database)
* Cliquer sur le bouton Installation de la sauvegarde (Backup Installation) au bas de la page. Vous verrez apparaître une barre de progression à l'écran, indiquant le temps restant dans le processus de sauvegarde. Lorsque la sauvegarde est terminée, un message apparaît dans le style: La sauvegarde a été créée avec succès. Vous pouvez le télécharger à partir de la page Sauvegardes. ( The backup was created successfully. You can download it from the Backups page)
* Si vous cliquer sur le lien Sauvegardes (Backups), vous accédez à une page où vous pouvez télécharger une copie de la sauvegarde créée. Vous pouvez également trouver les sauvegardes en utilisant FTP ou le gestionnaire de fichiers cPanel. Ils seront situés dans la racine de votre compte dans un dossier appelé softaculous_backups.
* Pour résumer un tuto avec des copies d'écran, c'est par là : Comment effectuer une sauvegarde de l'installation - Web Archive

##### Configurer une rotation des sauvegardes automatique

* Connecter vous avec vos identifiants à Cpanel
* Cliquer sur le lien Softaculous dans la section Software / Services
* Sur le côté gauche, dans la zone de recherche, tapez MediaWiki. La page sur MediaWiki s'affiche.
* Dans le coin supérieur gauche de la page, cliquer sur le lien Installation d'applications
* Les détails de l'installation apparaissent En bas de cette page se trouve la rubrique Options avancées (Advanced Options)
* Cliquer sur le bouton Options avancées.
** Choisir la fréquence de sauvegarde (Automated backup), c'est-à-dire une fois par jour, une fois par semaine, une fois par mois. Une fréquence hebdomadaire est d'usage.
** Choisir la rotation de sauvegarde (Rotation Backups). Il s'agit du nombre maximal de sauvegardes automatisées pour cette installation. Si la limite maximale est atteinte, Softaculous supprimera la sauvegarde la plus ancienne de cette installation.
* Cliquer sur Installer Le temps d'installation peut varier en fonction de la taille du script et d'autres facteurs. Veuillez donc patienter. Vos sauvegardes automatisées sont désormais planifiées. REMARQUE: Vous recevrez les courriels si les e-mails sont activés.
* Pour résumer un tuto avec des copies d'écran, c'est par là : Comment effectuer une rotation des sauvegardes automatique - Web Archive

##### Créer une copie de la sauvegarde en local sur votre pc

    Comme une rotation des sauvegardes automatique a été organisée, la plus ancienne est supprimée régulièrement. Par conséquent s'il a été choisi de conserver les quatre dernières sauvegardes, il faut régulièrement télécharger les sauvegardes du serveur distant où se trouve le site, sur le pc en local régulièrement.
* Connecter vous avec vos identifiants à Cpanel, le logiciel qui gère tous les paramètres de votre hébergement mutualisé
* Cliquer sur le lien Softaculous dans la section Software / Services
* Dans le coin supérieur droit de la page, cliquer sur le lien Sauvegarde et restauration (Backups and Restore). C'est l'icône qui ressemble à un dossier zippé.
* Sur cette page, vous verrez une liste des sauvegardes que vous avez précédemment créées.
* Cliquer sur le nom de fichier (Deuxième colonne dont le nom est File Name) à côté de la sauvegarde (Première colonne intitulée Backup Of) que vous souhaitez télécharger.
** Le navigateur Firefox vous propose d'enregistrer le Fichier. Cliquer sur OK.
** Votre navigateur va alors commencer à télécharger le fichier de sauvegarde sur le pc dans le dossier téléchargement. Remarquer que le nom de fichier de chaque sauvegarde inclut la date et l'heure à laquelle la sauvegarde a été générée. Par exemple, si vous avez une sauvegarde nommée wp.25_40354.2017-01-31_22-14-21.tar.gz, cela signifie que la sauvegarde a été générée le 31 janvier 2017 à 22 h 14.
* Il ne reste plus qu'à copier cette sauvegarde sur une clé USB

### Optimisation

Selon SiteGround.com, MediaWiki se trouve parmi les plates-formes d'applications les plus évolutives. Sa conception efficace lui permet de supporter des sites aussi importants que Wikipedia et cependant, en même temps, il peut être parfaitement optimisé. Cela s'applique aussi au wiki personnel le plus petit.

#### Optimisation de MediaWiki grâce à la mise en cache

Le rôle principal du "cache", ou de la "mise en cache", est de stocker une requête, un fichier, un objet ou un élément défini à un endroit, afin que ceux-ci soient fournis au plus vite, à l'utilisateur, ou au service final.
Mediawiki prend en charge une grande variété d'options de mise en cache telles que Memcache, eAccelerator, Database et autres. En l'espèce, nous utiliserons une simple mise en cache de fichiers car elle fonctionne sur n'importe quel type de serveur et ne provoque pas de surcharges supplémentaires de MySQL.
Le dossier Cache est préinstallé par MediaWiki. Pour activer le dossier de mise en cache pour MediaWiki, ouvrez votre fichier LocalSettings.php. Ensuite, à la fin ajouter les 3 lignes suivantes:
La première ligne active l'option de mise en cache. La seconde ligne spécifie dans quel dossier le contenu mis en cache doit être stocké. La troisième option est nécessaire en raison d'une dépendance.
En outre, assurez-vous de commenter (supprimer) la ligne du fichier LocalSettings.php qui contient $wgMainCacheType = variable afin d'éviter une mauvaise configuration.
Enfin, accédez à vos pages wiki pendant un certain temps, puis vérifiez la taille du dossier Cache dont le chemin est du type / home / YOUR_USER / public_html / cache. Si le cache fonctionne, la taille du dossier devrait augmenter lentement.
    Commentaires :
* Le dossier Cache enregistre les requêtes initiées par les différents utilisateurs sous un format HTML sur le serveur qui héberge MediaWiki. Cela rend la consultation des pages du site beaucoup plus confortable.
* La vitesse d'affichage des pages est améliorée, par conséquent cela influence favorablement le classement dans les moteurs de recherche (Google, Bing, Yahoo, et sans doute Yandex et Baidu)
* Pour un hébergement mutualisé en environnement linux, le chemin à inscrire dans le fichier LocalSettings.php est du type : $wgFileCacheDirectory = "/home/u380252704/public_html/cache";
* Pour un serveur local Synology avec DSM 6.1 (environnement linux), le chemin à inscrire dans le fichier LocalSettings.php est du type : $wgFileCacheDirectory = "/var/services/web/MediaWiki/cache";
* Le tuto-source se trouve sur le SiteGround.com ici

## Les petits programmes (scripts) de maintenance préinstallés

Les petits programmes, dont il sera question ci-après, se trouvent dans le dossier $InstallPath/maintenance/. En hébergement mutualisé, le chemin à suivre est du type root /public_html /maintenance Ces petits programmes sont des scripts, c'est-à-dire des suites d'instructions simples et souvent peu structurées qui permettent l'automatisation de certaines tâches. Ils sont écrits en langage PHP pour la plupart.

### Introduction

* Les scripts, qui seront exposés ci-après, doivent être exécutés à partir de la ligne de commande. Il est nécessaire de s'assurer du libre-accès à la ligne de commande (console) pour écrire les instructions.
* Auparavant, il convient de s'assurer que le fichier LocalSettings.php pointe vers la bonne installation.
* Certains scripts nécessiteront un accès à la base de données de Médiawiki avec des droits élevés d'opérations. Pour le mettre en place :
** il faut d'abord créer un utilisateur de MySQL avec "toutes" les permissions sur la base de données de Mediawiki.
** puis il faut ensuite le définir dans votre fichier Localsettings.php. Par exemple :$wgDBadminuser = 'wikidbadmin'; $wgDBadminpassword = 'XaruWeMuQe';
** Tuto pour créer un super-utilisateur : en section Maintenance --> La base de données de votre wiki --> PhpMyAdmin : Création d'un super-utilisateur wikidbadmin

### Présentation du dossier maintenance

* Beaucoup de fichiers présents dans ce dossier sont des scripts écrits en PHP. Leur but est d'accomplir des tâches de maintenance sur la base de données du wiki. Par exemple, il est possible de lancer un script de reconstruction des tables de liens ou encore de mise à jour des indices de recherche, etc...
* Les fichiers du sous-dossier "archives" (chemin par exemple : /public_html/maintenance/archives) sont utilisés pour mettre à jour le schéma de la base de données lors de la mise à jour du logiciel.
* Le sous-dossier "storage" (chemin par exemple : /public_html/maintenance/storage) contient des scripts et des ressources utiles pour travailler avec des clusters de stockage externes. En fait, ils ne sont pas susceptibles d'être particulièrement utilisés par la grande majorité des installations.

### Les scripts de maintenance les plus usités

    Préliminaires
* Comme il a été indiqué auparavant, les scripts de maintenance devraient être exécutés à partir de la ligne de commande (console).
* Tous les scripts possibles en langage PHP, ne sont pas répertoriés. En effet, certains scripts sont spécifiques à Wikimedia, et d'autres scripts ne sont pas applicables à la plupart des installations MediaWiki.
    Liste des scripts les plus usités
* changePassword.php : Réinitialise le mot de passe d'un utilisateur.
* cleanupSpam.php : Annulation groupée de l'enregistrement de liens de spams.
* createAndPromote.php : peut être utilisé non seulement pour créer de nouveaux utilisateurs, mais aussi sur les utilisateurs existants pour les promouvoir, et aussi pour créer un utilisateur sans le promouvoir.
* deleteOldRevisions.php : Pour supprimer toutes les révisions anciennes (non courantes) de la table de révision dans la base de donnée
* dumpBackup.php : DumpBackup.php crée une sauvegarde au format XML pour l'exportation ou la sauvegarde. Les sauvegardes au format XML enregistrent le contenu du wiki (les pages wiki avec toutes leurs révisions), sans les données liées au site, car DumpBackup.php ne crée pas de sauvegarde complète de la base de données du wiki. En effet, la sauvegarde ne prend pas en compte les comptes utilisateurs, les images, les journaux d'édition, etc... Une fois la sauvegarde achevée, vous pouvez procéder à l'importation de la sauvegarde au format XML.
* edit.php : Permet d'éditer une page pour modifier son contenu.
* findHooks.php : Find hooks that aren't documented in docs/hooks.txt
* importDump.php : pour importer des fichiers de sauvegarde XML dans le wiki actuel. Il lit les pages d'un fichier XML tel qu'il est produit à partir de la page Special: Export ou du script dumpBackup.php, et les enregistre dans le wiki actuel.
* importImages.php : Importe des images dans le wiki.
* moveBatch.php : Un script de maintenance permettant de déplacer (renommer) un lot de pages.
* namespaceDupes.php : Analyse le nom des articles afin de vérifier s'ils entrent en conflit avec un espace de nom nouveau ou existant.
* nukePage.php : Efface une page et son historique de la base de données.
* reassignEdits.php : Réaffecte les modifications effectués par un contributeur à un autre contributeur
* rebuildImages.php: Mettre à jour les enregistrements de métadonnées des images sur un wiki.
* rebuildMessages.php : Mise à jour des noms d'espace (namespace) de MediaWiki après la modification de la langue principale du wiki.
* rebuildTextindex.php : Utilisé pour [re] créer l'index de texte qui permet aux utilisateurs d'utiliser la fonction de recherche dans votre wiki. Vous devez l'exécuter si vous voyez que la recherche donne peu ou pas de résultat.
* refreshLinks.php : Reconstruit les tables des liens
* removeUnusedAccounts.php : Enlève les comptes utilisateurs qui n'ont pas effectué de modification de pages.
* runJobs.php : C'est un script de maintenance pour forcer manuellement la file d'attente des travaux à exécuter.
* undelete.php : Annulation de la suppression d'une page.
* update.php : Vérifie si le schéma de la base de données doit être mise à jour.
* updateRestrictions.php : Mise à jour de la table des pages restriction vers une nouvelle organisation.
* userOptions.php : Modifie les options attribuées à un utilisateur
    Précisions
    Dans son ouvrage sur MediaWiki, Daniel Barett attire l'attention sur un aspect technique important : "Lisez les scripts avant de les utiliser. Leurs buts sont tellement variés, couvrant le champ allant des simples requêtes aux suppressions destructives de lot, que vous ne devriez pas exécuter un script sans le comprendre dans sa globalité. Lorsqu'ils sont exécutés sans arguments, certains scripts affichent un message d'aide (par exemple changePassword.php) tandis que d'autres effectuent des actions irréversibles (comme le script update.php). Certains scripts respectent l'option --help pour afficher un message d'utilisation, mais beaucoup de scripts ne le font pas. C'est donc une situation délicate, il faut faire attention. Cependant, certains scripts sont si précieux qu'ils méritent d'être connus."

### Se connecter au serveur distant en SSH

    Description de l'environnement de test
    * Réseau local
    * MacBookPro avec macOS Sierra
    * Serveur Synology avec DSM 6.0 (Il s'agit d'une distribution Linux adaptée/créée par Synology) et MediaWiki version 1.27.1

#### Se connecter au serveur distant

    Voici la procédure générale sous macOS Sierra. c'est relativement aisé puisque ce service est présent, mais non activé, sur les Mac.
* Tout d'abord il faut activer SSH sur mac OS Sierra en partant de l'écran d'accueil:
** Cliquer en haut à gauche sur Pomme -> Préférences Système
** Cliquer sur le dossier Partage
** Dans la liste des services, il faut ensuite sélectionner service à distance puis définir un utilisateur Le service SSH est alors activé.
* Puis Finder -> Aller -> Utilitaires
* Cliquer sur Terminal
* Se connecter en SSH au serveur à distance avec cette commandessh admin@192.168.1.9"admin" représente la référence utilisateur (root si possible sur le serveur distant). Après @ il convient d'inscrire l'adresse IP du serveur distant. Lors de la première connection, il y a un échange de clés et il faut cliquer sur "yes".
* Le serveur renvoie une demande de mot de passe du type admin@192.168.1.9's password: Il convient de mettre le mot de passe.
* le serveur accepte les identifiants et renvoie une nouvelle ligne du type admin@DiskStation:~$
* On prend donc la main à ce moment sur le serveur distant.

#### Se déplacer dans le répertoire du serveur distant

* Pour cet exemple, il s'agit d'un serveur Synology sur le réseau local. Maintenant il faut se déplacer dans l'arborescence des fichiers du serveur distant. Par défaut la liaison SSH débouche à la racine maîtresse, donc au point de départ qui est un "slash" c'est à dire que l'on va utiliser le symbole "/". Pour se déplacer on va utiliser la commande cd qui signifie change directory. Appliqué au Synology cela donne une commande du type cd /var/services/web/
* Sur le Terminal s'affiche alors admin@DiskStation:/var/services/web$ C'est la confirmation que l'on s'est déplacé dans l'arborescence jusqu'au dossier web. Il faut donc continuer à descendre. Pour l'exemple on va le faire un dossier à la fois. Et on passe la commande suivante cd MediaWikiAttention de ne pas mettre un "/" puisqu'on n'est plus au point de départ.
* Sur le Terminal s'affiche admin@DiskStation:/var/services/web/MediaWiki$Alors à ce moment, on est dans le dossier MediaWiki. Il reste alors à choisir le dossier maintenance qui nous intéresse. On passe la commande suivante cd maintenance
* S'affiche alors sur le Terminal la confirmation attendue comme quoi on est bien placé dans le dossier maintenance admin@DiskStation:/var/services/web/MediaWiki/maintenance$Pour complément d'information, tout ce qui se trouve à gauche du signe $, montre le chemin parcouru. À la fin du chemin, se trouve le nom du dossier où on est placé. Reste à découvrir le contenu du dossier où on se trouve. Pour cela on utilise la commande "magique" ls -l

#### Voir la liste des scripts du dossier maintenance

    Avec cette commande ls -l, il est possible d'afficher le contenu du dossier maintenance avec tous les scripts sous la forme votrescriptpretalemploi.php admin@DiskStation:/var/services/web/MediaWiki/maintenance$ ls -l total 1244 -rw-r--r-- 1 http http 2563 Dec 23 02:56 7zip.inc drwxr-xr-x 2 http http 12288 Dec 23 02:56 archives -rw-r--r-- 1 http http 3053 Dec 23 02:56 attachLatest.php -rw-r--r-- 1 http http 12352 Dec 23 02:56 backup.inc -rw-r--r-- 1 http http 5587 Dec 23 02:56 backupPrefetch.inc drwxr-xr-x 2 http http 4096 Dec 23 02:56 benchmarks -rw-r--r-- 1 http http 3162 Dec 23 02:56 cdb.php -rw-r--r-- 1 http http 2490 Dec 23 02:56 changePassword.php -rw-r--r-- 1 http http 1981 Dec 23 02:56 checkBadRedirects.php -rw-r--r-- 1 http http 2347 Dec 23 02:56 checkComposerLockUpToDate.php -rw-r--r-- 1 http http 2460 Dec 23 02:56 checkImages.php -rw-r--r-- 1 http http 1983 Dec 23 02:56 checkLess.php -rw-r--r-- 1 http http 9495 Dec 23 02:56 checkSyntax.php -rw-r--r-- 1 http http 2016 Dec 23 02:56 checkUsernames.php -rw-r--r-- 1 http http 3395 Dec 23 02:56 cleanupAncientTables.php -rw-r--r-- 1 http http 3908 Dec 23 02:56 cleanupBlocks.php -rw-r--r-- 1 http http 3521 Dec 23 02:56 cleanupCaps.php -rw-r--r-- 1 http http 6193 Dec 23 02:56 cleanupImages.php -rw-r--r-- 1 http http 1610 Dec 23 02:56 cleanupPreferences.php -rw-r--r-- 1 http http 2334 Dec 23 02:56 cleanupRemovedModules.php -rw-r--r-- 1 http http 5008 Dec 23 02:56 cleanupSpam.php -rw-r--r-- 1 http http 4806 Dec 23 02:56 cleanupTable.inc -rw-r--r-- 1 http http 5803 Dec 23 02:56 cleanupTitles.php -rw-r--r-- 1 http http 5000 Dec 23 02:56 cleanupUploadStash.php -rw-r--r-- 1 http http 2932 Dec 23 02:56 cleanupWatchlist.php -rw-r--r-- 1 http http 1762 Dec 23 02:56 clearInterwikiCache.php -rw-r--r-- 1 http http 2201 Dec 23 02:56 commandLine.inc -rw-r--r-- 1 http http 3275 Dec 23 02:56 compareParserCache.php -rw-r--r-- 1 http http 5544 Dec 23 02:56 compareParsers.php -rw-r--r-- 1 http http 8948 Dec 23 02:56 convertExtensionToRegistration.php -rw-r--r-- 1 http http 9994 Dec 23 02:56 convertLinks.php -rw-r--r-- 1 http http 3197 Dec 23 02:56 convertUserOptions.php -rw-r--r-- 1 http http 14937 Dec 23 02:56 copyFileBackend.php -rw-r--r-- 1 http http 3384 Dec 23 02:56 copyJobQueue.php -rw-r--r-- 1 http http 4470 Dec 23 02:56 createAndPromote.php -rw-r--r-- 1 http http 3597 Dec 23 02:56 createCommonPasswordCdb.php -rw-r--r-- 1 http http 3629 Dec 23 02:56 deleteArchivedFiles.php -rw-r--r-- 1 http http 2137 Dec 23 02:56 deleteArchivedRevisions.php -rw-r--r-- 1 http http 3866 Dec 23 02:56 deleteBatch.php -rw-r--r-- 1 http http 2750 Dec 23 02:56 deleteDefaultMessages.php -rw-r--r-- 1 http http 6997 Dec 23 02:56 deleteEqualMessages.php -rw-r--r-- 1 http http 3299 Dec 23 02:56 deleteOldRevisions.php -rw-r--r-- 1 http http 3137 Dec 23 02:56 deleteOrphanedRevisions.php -rw-r--r-- 1 http http 3110 Dec 23 02:56 deleteRevision.php -rw-r--r-- 1 http http 1882 Dec 23 02:56 deleteSelfExternals.php drwxr-xr-x 3 http http 4096 Dec 23 02:56 dev drwxr-xr-x 2 http http 4096 Dec 23 02:56 dictionary -rw-r--r-- 1 http http 3793 Dec 23 02:56 doMaintenance.php -rw-r--r-- 1 http http 14422 Dec 23 02:56 Doxyfile -rw-r--r-- 1 http http 4806 Dec 23 02:56 dumpBackup.php -rw-r--r-- 1 http http 5480 Dec 23 02:56 dumpIterator.php -rw-r--r-- 1 http http 2367 Dec 23 02:56 dumpLinks.php -rw-r--r-- 1 http http 29528 Dec 23 02:56 dumpTextPass.php -rw-r--r-- 1 http http 3794 Dec 23 02:56 dumpUploads.php -rw-r--r-- 1 http http 3483 Dec 23 02:56 edit.php -rw-r--r-- 1 http http 3934 Dec 23 02:56 eraseArchivedFile.php -rw-r--r-- 1 http http 3109 Dec 23 02:56 eval.php -rw-r--r-- 1 http http 1348 Dec 23 02:56 exportSites.php -rw-r--r-- 1 http http 2630 Dec 23 02:56 fetchText.php -rw-r--r-- 1 http http 5015 Dec 23 02:56 fileOpPerfTest.php -rw-r--r-- 1 http http 5584 Dec 23 02:56 findDeprecated.php -rw-r--r-- 1 http http 10431 Dec 23 02:56 findHooks.php -rw-r--r-- 1 http http 3888 Dec 23 02:56 findMissingFiles.php -rw-r--r-- 1 http http 4378 Dec 23 02:56 findOrphanedFiles.php -rw-r--r-- 1 http http 3989 Dec 23 02:56 fixDefaultJsonContentPages.php -rw-r--r-- 1 http http 4094 Dec 23 02:56 fixDoubleRedirects.php -rw-r--r-- 1 http http 3007 Dec 23 02:56 fixExtLinksProtocolRelative.php -rw-r--r-- 1 http http 4281 Dec 23 02:56 fixTimestamps.php -rw-r--r-- 1 http http 2514 Dec 23 02:56 fixUserRegistration.php -rw-r--r-- 1 http http 2379 Dec 23 02:56 formatInstallDoc.php -rw-r--r-- 1 http http 6500 Dec 23 02:56 generateJsonI18n.php -rw-r--r-- 1 http http 594 Dec 23 02:56 generateLocalAutoload.php -rw-r--r-- 1 http http 13936 Dec 23 02:56 generateSitemap.php -rw-r--r-- 1 http http 5281 Dec 23 02:56 getConfiguration.php -rw-r--r-- 1 http http 1873 Dec 23 02:56 getLagTimes.php -rw-r--r-- 1 http http 1706 Dec 23 02:56 getSlaveServer.php -rw-r--r-- 1 http http 2155 Dec 23 02:56 getText.php drwxr-xr-x 2 http http 4096 Dec 23 02:56 hiphop -rw-r--r-- 1 http http 9141 Dec 23 02:56 importDump.php -rw-r--r-- 1 http http 4241 Dec 23 02:56 importImages.inc -rw-r--r-- 1 http http 11968 Dec 23 02:56 importImages.php -rw-r--r-- 1 http http 3512 Dec 23 02:56 importSiteScripts.php -rw-r--r-- 1 http http 1288 Dec 23 02:56 importSites.php -rw-r--r-- 1 http http 6167 Dec 23 02:56 importTextFiles.php -rw-r--r-- 1 http http 3589 Dec 23 02:56 initEditCount.php -rw-r--r-- 1 http http 2686 Dec 23 02:56 initSiteStats.php -rw-r--r-- 1 http http 6071 Dec 23 02:56 install.php -rw-r--r-- 1 http http 4496 Dec 23 02:56 interwiki.list -rw-r--r-- 1 http http 5246 Dec 23 02:56 interwiki.sql drwxr-xr-x 2 http http 4096 Dec 23 02:56 jsduck -rw-r--r-- 1 http http 2162 Dec 23 02:56 jsparse.php -rw-r--r-- 1 http http 2056 Dec 23 02:56 lag.php drwxr-xr-x 3 http http 4096 Dec 23 02:56 language drwxr-xr-x 2 http http 4096 Dec 23 02:56 locking -rw-r--r-- 1 http http 40950 Dec 23 02:56 Maintenance.php -rw-r--r-- 1 http http 575 Dec 23 02:56 Makefile -rw-r--r-- 1 http http 2203 Dec 23 02:56 makeTestEdits.php -rw-r--r-- 1 http http 5447 Dec 23 02:56 mcc.php -rw-r--r-- 1 http http 3430 Dec 23 02:56 mctest.php -rw-r--r-- 1 http http 6545 Dec 23 02:56 mergeMessageFileList.php -rw-r--r-- 1 http http 7515 Dec 23 02:56 migrateFileRepoLayout.php -rw-r--r-- 1 http http 3626 Dec 23 02:56 migrateUserGroup.php -rw-r--r-- 1 http http 3929 Dec 23 02:56 minify.php -rw-r--r-- 1 http http 4167 Dec 23 02:56 moveBatch.php drwxr-xr-x 3 http http 4096 Dec 23 02:56 mssql -rw-r--r-- 1 http http 3379 Dec 23 02:56 mwdoc-filter.php -rw-r--r-- 1 http http 4497 Dec 23 02:56 mwdocgen.php -rwxr-xr-x 1 http http 54 Dec 23 02:56 mwjsduck-gen -rw-r--r-- 1 http http 19091 Dec 23 02:56 namespaceDupes.php -rw-r--r-- 1 http http 4276 Dec 23 02:56 nukeNS.php -rw-r--r-- 1 http http 3777 Dec 23 02:56 nukePage.php drwxr-xr-x 3 http http 4096 Dec 23 02:56 oracle -rw-r--r-- 1 http http 7381 Dec 23 02:56 orphans.php -rw-r--r-- 1 http http 1549 Dec 23 02:56 pageExists.php -rw-r--r-- 1 http http 3502 Dec 23 02:56 parse.php -rw-r--r-- 1 http http 2005 Dec 23 02:56 patchSql.php -rw-r--r-- 1 http http 3031 Dec 23 02:56 populateBacklinkNamespace.php -rw-r--r-- 1 http http 4110 Dec 23 02:56 populateCategory.php -rw-r--r-- 1 http http 6680 Dec 23 02:56 populateContentModel.php -rw-r--r-- 1 http http 2990 Dec 23 02:56 populateFilearchiveSha1.php -rw-r--r-- 1 http http 6045 Dec 23 02:56 populateImageSha1.php -rw-r--r-- 1 http http 5753 Dec 23 02:56 populateLogSearch.php -rw-r--r-- 1 http http 2863 Dec 23 02:56 populateLogUsertext.php -rw-r--r-- 1 http http 4470 Dec 23 02:56 populateParentId.php -rw-r--r-- 1 http http 3161 Dec 23 02:56 populateRecentChangesSource.php -rw-r--r-- 1 http http 4308 Dec 23 02:56 populateRevisionLength.php -rw-r--r-- 1 http http 6272 Dec 23 02:56 populateRevisionSha1.php drwxr-xr-x 3 http http 4096 Dec 23 02:56 postgres -rw-r--r-- 1 http http 2844 Dec 23 02:56 preprocessDump.php -rw-r--r-- 1 http http 7781 Dec 23 02:56 preprocessorFuzzTest.php -rw-r--r-- 1 http http 2839 Dec 23 02:56 protect.php -rw-r--r-- 1 http http 3706 Dec 23 02:56 pruneFileCache.php -rw-r--r-- 1 http http 8331 Dec 23 02:56 purgeChangedFiles.php -rw-r--r-- 1 http http 6384 Dec 23 02:56 purgeChangedPages.php -rw-r--r-- 1 http http 4137 Dec 23 02:56 purgeList.php -rw-r--r-- 1 http http 1439 Dec 23 02:56 purgeOldText.php -rw-r--r-- 1 http http 2872 Dec 23 02:56 purgeParserCache.php -rw-r--r-- 1 http http 2937 Dec 23 02:56 README -rw-r--r-- 1 http http 6400 Dec 23 02:56 reassignEdits.php -rw-r--r-- 1 http http 2280 Dec 23 02:56 rebuildall.php -rw-r--r-- 1 http http 5150 Dec 23 02:56 rebuildFileCache.php -rw-r--r-- 1 http http 5995 Dec 23 02:56 rebuildImages.php -rw-r--r-- 1 http http 5734 Dec 23 02:56 rebuildLocalisationCache.php -rw-r--r-- 1 http http 1741 Dec 23 02:56 rebuildmessages.php -rw-r--r-- 1 http http 14232 Dec 23 02:56 rebuildrecentchanges.php -rw-r--r-- 1 http http 1868 Dec 23 02:56 rebuildSitesCache.php -rw-r--r-- 1 http http 4776 Dec 23 02:56 rebuildtextindex.php -rw-r--r-- 1 http http 3164 Dec 23 02:56 refreshFileHeaders.php -rw-r--r-- 1 http http 7126 Dec 23 02:56 refreshImageMetadata.php -rw-r--r-- 1 http http 11476 Dec 23 02:56 refreshLinks.php -rw-r--r-- 1 http http 2039 Dec 23 02:56 removeInvalidEmails.php -rw-r--r-- 1 http http 4961 Dec 23 02:56 removeUnusedAccounts.php -rw-r--r-- 1 http http 3026 Dec 23 02:56 renameDbPrefix.php -rw-r--r-- 1 http http 3866 Dec 23 02:56 renderDump.php -rw-r--r-- 1 http http 2300 Dec 23 02:56 resetUserEmail.php -rw-r--r-- 1 http http 3555 Dec 23 02:56 resetUserTokens.php drwxr-xr-x 2 http http 4096 Dec 23 02:56 resources -rw-r--r-- 1 http http 3461 Dec 23 02:56 rollbackEdits.php -rw-r--r-- 1 http http 2022 Dec 23 02:56 runBatchedQuery.php -rw-r--r-- 1 http http 3645 Dec 23 02:56 runJobs.php -rw-r--r-- 1 http http 2049 Dec 23 02:56 runScript.php -rw-r--r-- 1 http http 3500 Dec 23 02:56 showJobs.php -rw-r--r-- 1 http http 2348 Dec 23 02:56 showSiteStats.php drwxr-xr-x 3 http http 4096 Dec 23 02:56 sqlite -rw-r--r-- 1 http http 2592 Dec 23 02:56 sqlite.inc -rw-r--r-- 1 http http 4400 Dec 23 02:56 sqlite.php -rw-r--r-- 1 http http 5412 Dec 23 02:56 sql.php drwxr-xr-x 2 http http 4096 Dec 23 02:56 storage -rw-r--r-- 1 http http 10806 Dec 23 02:56 syncFileBackend.php -rw-r--r-- 1 http http 60606 Dec 23 02:56 tables.sql drwxr-xr-x 2 http http 4096 Dec 23 02:56 term -rw-r--r-- 1 http http 1446 Dec 23 02:56 tidyUpBug37714.php -rw-r--r-- 1 http http 2069 Dec 23 02:56 undelete.php -rw-r--r-- 1 http http 2350 Dec 23 02:56 updateArticleCount.php -rw-r--r-- 1 http http 10271 Dec 23 02:56 updateCollation.php -rw-r--r-- 1 http http 2411 Dec 23 02:56 updateDoubleWidthSearch.php -rw-r--r-- 1 http http 1508 Dec 23 02:56 update-keys.sql -rwxr-xr-x 1 http http 7295 Dec 23 02:56 update.php -rw-r--r-- 1 http http 4383 Dec 23 02:56 updateRestrictions.php -rw-r--r-- 1 http http 4134 Dec 23 02:56 updateSearchIndex.php -rw-r--r-- 1 http http 5082 Dec 23 02:56 updateSpecialPages.php -rw-r--r-- 1 http http 7887 Dec 23 02:56 userDupes.inc -rw-r--r-- 1 http http 7293 Dec 23 02:56 userOptions.inc -rw-r--r-- 1 http http 1197 Dec 23 02:56 userOptions.php -rw-r--r-- 1 http http 2113 Dec 23 02:56 validateRegistrationFile.php -rw-r--r-- 1 http http 3999 Dec 23 02:56 wrapOldPasswords.php
    Commentaires
* Le test décrit ci-dessus s'est déroulé en réseau local sur un MacBookPro avec un compte utilisateur ayant des droits d'administration, ce qui est déconseillé.
* Les symboles au début des lignes (comme -rw-r--r--) décrivent les droits des permissions utilisateurs sous Linux des fichiers correspondants.

## Pour aller plus loin

* Suppression des anciennes versions.