MediaWiki-Vagrant/fr





MediaWiki - Vagrant est un environnement de développement de MediaWiki portable. Il se compose d'un ensemble de scripts de configuration pour Vagrant et VirtualBox qui automatisent la création d'une machine virtuelle pour exécuter MediaWiki. Parce que la configuration est orientée développement facile plutôt que vers la sécurité, MediaWiki-Vagrant n'est pas recommandé pour les wikis accessibles publiquement.

La machine virtuelle que MediaWiki-Vagrant crée fait qu'il est facile d'apprendre, de modifier et d'améliorer le code de MediaWiki : des informations de débogage utiles sont affichées par défaut, et les différents outils de développement sont mis en place spécifiquement pour inspecter et interagir avec le code MediaWiki, y compris un débogueur puissant et un interpréteur interactif. Le meilleur de tous, car la configuration est automatisée et contenue dans un environnement virtuel, les erreurs sont alors faciles à corriger. Best of all, because the configuration is automated and contained in a virtual environment, mistakes are easy to undo.

Exigences du système

 * CPU : processeur x86 64-bit
 * OS : Linux, macOS, or Windows
 * Mémoire : au moins 4 GiB de RAM totale sur votre système, de préférence 8 GiB ou plus, pour exécuter à la fois le système d’exploitation hébergé ainsi que la VM. Ne pas essayer d’exécuter cela sur un système n'ayant que 2 GiB de RAM car il risque de planter.
 * Disque : doit avoir plusieurs gigaoctets de libre sur le disque primaire (partition /home pour Linux, disque C: pour Windows). Notez en particulier que les images disque de la VM seront rangées par défaut dans votre répertoire personnel.
 * Réseau : une connexion active au réseau avec suffisamment de bande passante pour télécharger les mises à jour Linux Debian et le code source MediaWiki
 * Temps d'installation : entre 20 minutes et 2 heures, selon les situations et en fonction des problèmes que vous rencontrez.

Démarrage rapide
(Si vous installez MediaWiki-Vagrant à partir de la distribution USB, suivez les étapes du fichier README plutôt que les cinq premières étapes.)


 * 1) Téléchargez Git
 * 2) (Linux seulement) Installez NFS s'il ne l'est pas déjà. Sous Ubuntu, utilisez  . Fedora vient habituellement avec NFS installé; si ce n'est pas le cas, exécutez  . Install NFS if it is not already installed. In Ubuntu, use  . Fedora usually come with NFS installed; if not run.
 * 3) Téléchargez VirtualBox
 * 4) Téléchargez la dernière version de Vagrant.
 * 5) Récupérez le code et créez votre machine :
 * (Ceci va cloner à la racine de votre répertoire utilisateur.)
 * Quand il sera demandé, entrez votre nom d'utilisateur Gerrit (recommandé), ou pressez simplement Enter.
 * Si vous voulez utiliser une branche de diffusion plutôt que la dernière version, vous pouvez le préciser maintenant avec
 * 1) Activez les fonctionnalités additionnelles de MediaWiki, par exemple :
 * 2) Lorsque Vagrant a terminé de configurer votre machine, exécutez la commande , ou allez sur http://dev.wiki.local.wmftest.net:8080/ pour trouver votre instance MediaWiki. Vous pouvez vous connecter avec le nom d'utilisateur Admin et le mot de passe vagrant.
 * 1) Activez les fonctionnalités additionnelles de MediaWiki, par exemple :
 * 2) Lorsque Vagrant a terminé de configurer votre machine, exécutez la commande , ou allez sur http://dev.wiki.local.wmftest.net:8080/ pour trouver votre instance MediaWiki. Vous pouvez vous connecter avec le nom d'utilisateur Admin et le mot de passe vagrant.
 * 1) Lorsque Vagrant a terminé de configurer votre machine, exécutez la commande , ou allez sur http://dev.wiki.local.wmftest.net:8080/ pour trouver votre instance MediaWiki. Vous pouvez vous connecter avec le nom d'utilisateur Admin et le mot de passe vagrant.
 * 1) Lorsque Vagrant a terminé de configurer votre machine, exécutez la commande , ou allez sur http://dev.wiki.local.wmftest.net:8080/ pour trouver votre instance MediaWiki. Vous pouvez vous connecter avec le nom d'utilisateur Admin et le mot de passe vagrant.

Si vous utilisez Windows
Téléchargez Git pour Windows et exécutez les commandes  dans son interface système Git Bash. Au lieu de, exécutez   à partir d'une fenêtre.

Si vous utilisez le shell WSL compatible Linux sous Windows 10: exécutez les commandes avec  au lieu de. Lancez  au lieu de , qui ne fonctionne pas dans le shell bash Linux

Le compte qui exécute Vagrant aura probablement besoin des droits pour « Créer des liens symboliques » (la manière la plus facile de les avoir est d'exécuter en tant qu'administrateur).

Problèmes de démarrage
Si vos questions ne trouvent pas de réponses ici, IRC est une bonne option, en particulier le canal.


 * Quelques fois vous pouvez réparer des installations cassées (par exemple si on vous répond "No wiki found..." en exécutant  ce qui va reconstruire la machine virtuelle sans répéter les parties du processus d'installation qui prennent le plus de temps.

Tout hôte
Vous pourriez vouloir comparer la sortie de la première exécution de vagrant up dans votre terminal avec cet échantillon. La configuration initiale peut prendre un certain temps; si elle semble se bloquer quelque part, mais sans avoir d'erreurs, il suffit de lui laisser un peu temps.
 * Vous pouvez essayer d'installer les versions de VirtualBox et de Vagrant que votre distribution Linux vous fournit. Si vous utilisez une version récente de Debian ou Ubuntu, essayez sudo apt-get install virtualbox vagrant pour installer les packages pour VirtualBox et Vagrant.
 * Si vous obtenez des erreurs de vagrant up, installez à la place les versions les plus récentes de VirtualBox et de Vagrant.
 * If you get errors from vagrant up, instead install the most recent versions of VirtualBox and Vagrant.
 * Si vous obtenez un message d'erreur tel que "Couldn't open file $CLONED_REPOSITORY/trusty-cloud", essayez la commande suivante : vagrant up --provider=virtualbox
 * Si vous avez des erreurs de "puppet" vous pourriez avoir besoin d'initialiser les sous-modules de "puppet", dans le répertoire vagrant exécutez git submodule update --init
 * Utilisez http://127.0.0.1:8080/info.php pour vérifier que le serveur Apache/PHP est en cours d'exécution.

You might want to compare the output of the initial run of vagrant up in your terminal with this sample. The initial setup may take a long time; if it seems to hang somewhere but there are no errors, just give it a while.
 * Si vous obtenez des avertissements que vos "Guest Additions" dans la VirtualBox ne sont pas à la bonne version, vous pouvez essayer d'installer le plugin vagrant-vbguest qui les met à jour automatiquement.
 * Vagrant perd rarement la liaison avec votre VM. Cet article parle des façons de les contourner (par exemple l'attachement d'un ancien disque dur virtuel vers le nouveau profil)
 * Assurez-vous que le dépôt  est à jour :
 * Make sure that  repository is up to date:
 * Assurez-vous que vous ayez bien activé la virtualisation dans le BIOS. Parfois, cela se trouve dans les paramètres de sécurité.
 * Assurez-vous que vos paramètres de codage de langue soient bien en UTF-8. Si vous obtenez "invalid byte sequence in US-ASCII", essayez de (re) paramétrer vos variables d'environnement LANG et LC_ALL avec des valeurs convenables. Par exemple :

Spécifique à Windows

 * Si vous êtes sous Windows et que vous obtenez le message "La machine invité est entrée dans un état non valide" - "Extinction", essayez de télécharger une version de VirtualBox 4.3.15 (there is a known problem with 4.3.14 on Windows). Si cela ne vous aide pas, vérifiez que vous ayez bien activé le paramètre "Hardware Virtualization Technology" (VT-x ou AMD-V) dans le BIOS. La virtualisation du matériel est nécessaire, il ne s'agit pas d'une simple option pour améliorer les performances. (Pour certains ordinateurs portables, il est nécessaire d'enlever le câble d'alimentation et la batterie pendant 30 secondes ).
 * VirtualBox est incompatible avec Hyper-V de Microsoft. Si vous avez Hyper-V d'activé – ce qui peut être le cas par défaut si vous avez installé Visual Studio – vous obtiendrez les erreurs ci-dessus en essayant de démarrer une machine virtuelle dans VirtualBox. Il y a trois possibilités :
 * A l'invite du système, exécutez bcdedit /set hypervisorlaunchtype off pour arrêter Hyper-V et redémarrez. Pour redémarrer Hyper-V, remettez la valeur auto au lieu de off
 * Désactivez Hyper-V grâce à l' "Ajout/Suppression de fonctionnalités Windows" dans le Panneau de contrôle puis, redémarrez. Cela va vous permettre de faire fonctionner VirtualBox, mais vous empêche d'utiliser toute VM Hyper-V que vous pourriez avoir, comme par exemple les émulateurs de téléphone Windows.
 * Ou, utilisez le fournisseur Hyper-V pour Vagrant au lieu de VirtualBox. Cela peut être instable.

Spécifique au Mac

 * Erreurs NFS Pour éviter les erreurs NFS lors de l'installation, assurez vous que le pare-feu accepte bien les connexions : Apple > Préférences Système > Sécurité et confidentialité > Pare-feu > Options de pare-feu. Vous aurez besoin de DéCOCHER la case "Bloquer toutes les connexions entrantes" et probablement aussi de DéCOCHER "Activer le mode furtif" pour pouvoir accepter les éléments suivants : netbiosd, nfsd, rpc.lockd, rpc.rquotad, rpcbind et VBoxHeadless. Notez que vous devrez peut-être redémarrer votre ordinateur et changer le statut à "Autoriser les connexions entrantes" pendant quelques . Après l'installation, vous allez pouvoir à nouveau COCHER "Bloquer toutes les connexions entrantes" et "Activer le mode furtif" maintenant que les règles de pare-feu ont été mises à jour.
 * Sinon, vous pouvez désactiver les partages NFS via le.

Debian et Ubuntu

 * MediaWiki-Vagrant utilise NFS pour partager certains dossiers avec la machine hôte (votre ordinateur). Vous devez configurer votre ordinateur comme un "serveur NFS", voir par exemple Ubuntu instructions. Sous Debian, sudo apt-get install nfs-kernel-server fonctionnera ; vous aurez peut-être aussi besoin de . Notez que le serveur NFS de Debian ne démarre pas sans une entrée dans  . Si   ne montre pas que les services "nfs" sont en cours d'exécution, c'est que c'est probablement le cas. L'ajout de votre répertoire personnel (home) en dernière ligne de   puis /etc/init.d/nfs-kernel-server restart sera généralement suffisant pour outrepasser ce problème de la poule et de l'oeuf.
 * Les partages NFS utilisés par MediaWiki-Vagrant ne peuvent pas être exécutés à partir d'un répertoire crypté, ce qui peut être le cas si vous êtes sous Ubuntu, et que vous utilisez un répertoire personnel chiffré. Pour exécuter MediaWiki - Vagrant vous pouvez soit :
 * Déplacez le répertoire MediaWiki-Vagrant vers un volume non crypté (par exemple ) avant l'exécution de.
 * Sinon, vous pouvez également désactiver les partages NFS via
 * L'installation de NFS semble parfois se bloquer (la commande initiale  se bloque sur "Mounting NFS shared folders"). Essayez de redémarrer le démon NFS sur l'hôte, ça peut aider (voir #5802).
 * NFS setup seems to get stuck sometimes (initial  hangs at "Mounting NFS shared folders"). Restarting the NFS daemon on the host helps. (See #5802.)
 * Si vous obtenez des erreurs de redirection de port qui disent que les ports sont en cours d'utilisation, vous devrez peut-être ouvrir une Virtual Box, supprimer entièrement la machine virtuelle, et ré-essayer.

Fedora

 * Si vous obtenez Network 10.11.12.13 is not available. après avoir exécuté, désactivez SELinux via   ou corrigez votre configuration SELinux.
 * Si vous obtenez The provider for this Vagrant-managed machine is reporting that it is not yet ready for SSH. après avoir exécuté, assurez-vous d'avoir initialisé le fournisseur explicitement, par exemple via   suivi de
 * Si vous obtenez mount.nfs: mount to NFS server '10.11.12.13:download-directory/vagrant' failed: RPC Error: Unable to receive, exécutez

Utilisation de base
L'outil de ligne de commande vagrant sur la machine hôte fournit plusieurs sous commandes pour contrôler votre machine virtuelle. Vous en avez déjà utilisé une : vagrant up, qui tourne sur la machine virtuelle. Comme la plupart des sous commandes vagrant, vous devez l'exécuter à partir du répertoire MediaWiki-Vagrant ou l'un de ses enfants. Lorsque vous l'exécutez pour la première fois, Vagrant va chercher une image système et configurer le logiciel nécessaire pour l'exécution de MediaWiki. Cela peut prendre 1 à 2 heures d'utilisation du CPU avec une connexion à large bande, mais ça ne se produira qu'une fois. Si vous exécutez à nouveau vagrant up par la suite, ça va tout simplement démarrer la machine.

vagrant ssh démarre un shell interactif de connexion sur la machine virtuelle. Il va vous connecter en tant qu'utilisateur vagrant ; L'accès root est disponible via sudo, qui s'utilise sans avoir recours à un mot de passe. Parce que la machine virtuelle est entièrement intégrée (sandboxed) au sein de votre ordinateur, elle est configurée pour la commodité, pas pour la sécurité. En règle générale, chaque fois que vous rencontrerez une demande de mot de passe, le mot de passe à saisir sera.

Lorsque vous vous connectez, vous devriez voir une bannière MediaWiki colorée et quelques rappels de commandes utiles.

La commande phpsh va démarrer un interpréteur PHP interactif avec le code de base de MediaWiki déjà chargé. Vous pouvez saisir du code, appuyer sur la touche 'entrée', et le code sera évalué immédiatement. Si vous commencez une ligne avec '=', la valeur calculée sera affichée. Tapez ? pour une aide rapide ou help start pour obtenir des instructions supplémentaires.

Le dossier  correspond au dossier MediaWiki-Vagrant de ​​votre machine hôte, et son contenu est partagé. Le code de MediaWiki est installé dans. Cela vous permet d'utiliser l'environnement normal de votre éditeur sur votre machine hôte pour modifier le code de MediaWiki qui s'exécute sur votre machine virtuelle.

Faire la mise à jour
Utilisez vagrant git-update pour garder à jour vos dépôts Git, les bibliothèques externes, et le schéma de base de données. Cette commande est équivalente à l'utilisation de
 * 1) git pull dans   et tous les répertoires d'extension et de thèmes (skins)
 * 2) composer update pour veiller à ce que les dernières bibliothèques "Composer-managed" soient disponibles.
 * 3) Et pour finir, le script.


 * 1) git pull in   and all extension and skin directories
 * 1) composer update to ensure that the latest Composer-managed libraries are available
 * 1) finally the   script.

Vous devez aussi de temps en temps (ou quand c'est nécessaire pour une nouvelle fonctionalité) mettre à jour MediaWiki-Vagrant lui-même, ce que ne fait pas vagrant git-update. Exécutez:

… dans votre répertoire racine de MediaWiki-Vagrant. Ceci prendra effet quand vous exécuterez :

Vous pouvez exécuter cette commande immédiatement après avoir fait le git pull, ou peu de temps après.

Déconnectez-vous de votre machine virtuelle en tapant logout ou en appuyant sur CTRL + D. Maintenant que vous êtes de nouveau dans une invite de commande standard, vous pouvez exécuter vagrant halt pour arrêter la machine virtuelle et vagrant up pour la redémarrer. vagrant destroy supprimera les fichiers de la machine virtuelle; cette commande est utile si vous voulez remettre l'instance dans son état d'origine (vous aurez besoin d'exécuter vagrant up à nouveau pour instancier une nouvelle machine virtuelle).

Utilisation des rôles
MediaWiki-Vagrant met en place une instance MediaWiki de base par défaut, mais cela demande aussi de savoir comment configurer une gamme de logiciels complémentaires, y compris certaines extensions populaires de MediaWiki et leurs dépendances. Ces piles de logiciels optionnels sont communément appelées «rôles» et MediaWiki-Vagrant offre une interface en ligne de commande simple et puissante pour les gérer.

$ vagrant roles list


 * 1) Affiche une liste des rôles disponibles.

$ vagrant roles enable role


 * 1) Activer les "rôles" pour cette machine.

$ vagrant roles disable role


 * 1) Désactiver les "rôles" pour cette machine.

$ vagrant provision


 * 1) Une fois terminée l'activation/désactivation des rôles, lancez ceci pour que les modifications prennent effet.

Regardez une petite screencast montrant comment utiliser les rôles. Vous obtiendrez plus d'informations avec Rôles sur certains rôles.

Si vous ajoutez de nombreux rôles, vous devrez peut-être augmenter la mémoire disponible sur la VM Vagrant. En particulier, la mise en place du rôle "browsertests" qui implique la compilation du  ruby Gem qui est une tâche gourmande en mémoire; si elle plante essayez de libérer de la mémoire dans la machine virtuelle ou d'augmenter son allocation mémoire.

Voir la section #Authoring roles|Création des rôles ci-dessous si vous êtes intéressé pour ajouter des rôles à MediaWiki-Vagrant.

Centralauth
Il y a des rôles qui nécessitent une attention particulière, le rôle centralauth n'exécute pas les migrations de base de données automatiquement via Puppet et exige leur exécution à la main. Si vous obtenez des erreurs en provisionnant ce rôle, essayez d'exécuter ce script à partir de l'extension et de voir les erreurs qui s'affichent en sortie :

mwscript extensions/CentralAuth/maintenance/migrateAccount.php --username 'Admin' --auto

Une fois que vous aurez obtenu une erreur plus concrète, vous aurez probablement besoin de savoir qu'elle est la migration à faire tourner parmi celles-ici :

extensions/CentralAuth/db_patches

Wikidata
Un simple  ne fonctionnera pas. Voici un ensemble complet de commandes pour définir le rôle Wikidata et le rendre opérationnel.

Déconnectez vous de Vagrant, puis vous pouvez joyeusement exécuter :

Notez que la première disposition peut rechigner, laissant penser à un échec. Cependant, si vous utilisez une deuxième disposition, vous verrez que tout se passe bien.

Vous pouvez ensuite afficher dans votre navigateur http://wikidata.wiki.local.wmftest.net:8080/. Pour créer un nouvel élément wikidata chargez http://wikidata.wiki.local.wmftest.net:8080/wiki/Special:NewItem et pour créer une nouvelle propriété allez sur http://wikidata.wiki.local.wmftest.net:8080/wiki/Special:NewProperty

Comment importer un dump Wikidata
La commande Vagrant, qui  , ne gère pas les wikis autres que celui par défaut (voir phab:T183274). Vous devez exécuter le script  à l'intérieur du dialogue Vagrant.

Voici la procédure pour importer des dumps XML.


 * téléchargez les blocs . Par exemple :


 * autoriser l'importation d'entités Wikibase (voir phab:T72898). Ajoutez la ligne suivante à votre :


 * le script BASH suivant peut vous aider à suivre le processus. Vous pouvez le recopier dans un fichier  . Notez que la ligne surlignée appelle le script actuel d'importation :


 * connectez vous à l'intérieur du dialogue Vagrant et lancez le script. Les messages de débogage devraient y apparaître :


 * vous pouvez suivre le journal de progression depuis l'extérieur du dialogue Vagrant :

Copie du noyau MediaWiki en local
Il se peut que vous ayez parfois envie de recommencer à zéro en supprimant l'ensemble du répertoire vagrant ou en nettoyant le répertoire vagrant/mediawiki. Afin d'accélérer le processus de provisionnement de vagrant, vous pourrez peut-être envisager de garder un clone local d'un noyau MediaWiki à jour que vous pouvez copier dans vagrant/mediawiki.

par exemple, en supposant que vous clonez un dépôt MediaWiki dans ~/projets/mediawiki/ :

Mise à jour des dépôts clonés
Mettre à jour les dépôts clonées aussi souvent que possible / nécessaire.

Ou de mettre à jour tous les dépôts clonés :

Recharger Vagrant
Si vous changez la configuration (par exemple la vagrant_ram, votre site web VM/MediaWiki se bloque, ou un problème apparaît, vagrant reload peut résoudre la situation. Cela va redémarrer votre invité. Certains rôles nécessitent aussi un rechargement, qui devrait se produire automatiquement.

Quand activer les rôles
Activez les rôles seulement après avoir exécuté avec succès votre premier vagrant up.

Notez que vagrant destroy ne réinitialisera pas les rôles autorisés. Vérifiez bien d'avoir désactivé tous les rôles après avoir lancé vagrant destroy, puis exécutez vagrant up. ensuite, vous pouvez réactiver les rôles que vous voulez et exécuter vagrant provision.

Vagrant derrière un proxy
Si vous êtes derrière un proxy, Vagrant pourrait faire apparaître quelques errors. Vous pouvez installer vagrant-proxyconf. C'est un plugin qui permet à votre machine virtuelle d'utiliser les proxy spécifiés. C'est un guide d'installation rapide. Pour une documentation plus détaillée, vous pouvez également regarder here.

Installez le plugin :

Pour configurer les paramètres de proxy pour tous les logiciels sur tous les ordinateurs virtuels vagrant, ajoutez les lignes suivantes à votre  (par défaut  ).

Remplacez les adresses avec l'IP et le numéro de port de votre serveur proxy. Utilisez l'option config.proxy.no_proxy pour sortir la liste de tous les sites/domaines pour lesquels vous pourriez vouloir contourner le proxy. Par exemple,

Maintenant, lorsque vous exécutez un vagrant up, il ne devrait plus y avoir d'avertissements.

Pour désactiver le plugin, mettez config.proxy.enabled à false ou à une chaîne vide (""). Vous pouvez également le désactiver pour des applications spécifiques. Par exemple,

Préparation de MediaWiki-Vagrant
Vous envisagerez peut-être d'utiliser un script d'interface système (shell) comme mw-vagrant-prep pour préparer un répertoire pour une installation de MediaWiki-Vagrant.

Provisionnement
Vous pouvez déboguer le processus de provisionnement en exécutant

PHP
Vous pouvez déboguer PHP avec Xdebug. Déboguer en PHP est différent des autres type de débogage côté client. Votre IDE écoute les connexions entrantes, et lorsque vous accédez au serveur avec un navigateur, un entête spécial indique à PHP de se connecter à votre IDE. Voir MediaWiki-Vagrant/Advanced usage pour plus d'informations.

Chrome

 * Pour les utilisateurs de Chrome, vous devriez récupérer XDebug Helper, et éventuellement Clear Cache, HTTP headers, et Mod Headers. Configurez la suppression du cache pour recharger automatiquement après la suppression, et définissez des raccourcis clavier (e.g. Ctrl+R pour suppression & rechargement, Ctrl+Shift+D pour activer/désactiver XDebugger)

Firefox

 * Les utilisateurs de Firefox devraient regarder easy Xdebug.
 * Installez et configurez un IDE [$compat compatible xdebug] sur votre machine (Eclipse, PhpStorm, Emacs, etc.)
 * Dans l'IDE, commencez par écouter la connexion de débogage entrante.
 * Dans l'IDE, mettez un point d'arrêt à l'endroit qui vous intéresse.
 * Activez XDebug dans le navigateur et accédez à votre installation vagrant ( http://127.0.0.1:8080/... )
 * Install and configure an xdebug-compatible IDE on your machine (Eclipse, PhpStorm, Emacs, etc)
 * In IDE, start listening for the incoming debug connection
 * In IDE, set break point at the spot that interests you
 * Enable XDebug in the browser and navigate to your vagrant installation ( http://127.0.0.1:8080/... )

Fichiers de journalisation (log)
Les fichiers de journalisation (logs) de mediawiki peuvent être trouvés dans /vagrant/logs. Il y a des fichiers de journalisation (log) pour Apache dans /var/log/apache2/, mais il semble qu'il ne soient pas écris. Le fichier de journalisation (log) des requêtes MySQL peut être obtenu en saisissant SET GLOBAL general_log = 'ON'; dans un client, puis en regardant dans /var/lib/mysql/*.log.

Exécution et débogage des tests unitaires
Pour « excécuter » les tests pour TOUTES les extensions :

Pour exécuter les tests unitaires avec une seule extension :

Vous pouvez ajouter "path/to/tests/to/run".

Certains tests peuvent nécessiter d'être exécutés par l'utilisateur propre pour créer des fichiers de verrouillage, par conséquent cette commande est exécutée comme "utilisateur"  qui gère les requêtes Web.

Pour la construction des rapports de couverture, voir le manuel.

Le débogage des tests de phpunit est un petit peu plus compliqué. Cette méthode est un peu "hacky", mais peut être utilisé le temps que l'interpréteur à distance de débogage s'améliore (par exemple dans PHPStorm 8 EAP ). Cette solution de contournement vous permet d'exécuter des tests unitaires MediaWiki depuis le navigateur.


 * Télécharger le fichier phpunit.phar à la racine de votre répertoire vagrant.
 * Créez un fichier php  dans la racine du  . Ne faites pas de validation (commit) pour ce fichier dans le dépôt. Collez le code suivant dedans :


 * Dans le fichier ci-dessus, changez le paramètre "argv" par le nom de votre fichier de test.
 * Apache fait correspondre la racine du répertoire de MediaWiki à . Donc, naviguez jusqu'à http://127.0.0.1:8080/w/unittest.php pour exécuter ce fichier.
 * Suivez les instructions #Debugging pour attacher votre débogueur.

Exécuter les tests du navigateur
Voir.

Ce lien pointe vers une documentation obsolète; toute personne pouvant aider à décrire la manière de tester MediaWiki est bienvenue à contribuer :

Pousser les validations (commit)
Si vous utilisez MediaWiki-Vagrant pour le développement, vous aurez probablement envie de pousser certains "commits" dans le noyau MediaWiki ou dans un dépôt d'extensions à l'aide de git review. Par défaut, toutes les commandes distantes pointent vers les URL. Pour éviter leur redéfinition au cas par cas, exécutez :

$ git config --global url."ssh:// @gerrit.wikimedia.org:29418/".insteadOf "https://gerrit.wikimedia.org/r/"

Vous devez aussi avoir vos clés ssh dans.

Troubleshooting

 * ; Vérifiez la version de PHP et les paramètres.
 * http://127.0.0.1:8080/info.php
 * http://127.0.0.1:8080/info.php


 * Modifier le fichier LocalSettings.php?
 * Tout d'abord, vérifiez qu'il n'y a pas de rôle ( vagrant list-roles ) qui fait déjà ce que vous avez besoin. Sinon, créez un fichier dans . Voir le fichier README et le fichier d'exemple 00-debug.php.


 * Mettre à jour le code MediaWiki ?
 * Le plus simple est d'utiliser  à partir de l'hôte. Ou, pour simplement mettre à jour le code sans les dépendances, vous pouvez utiliser régulièrement les commandes git ,  , etc. dans les répertoires   et  . Vous pouvez exécuter ces commandes sur la machine virtuelle, mais l' accès aux fichiers sera plus rapide sur la machine hôte. MediaWiki-Vagrant tire le code (pull) à partir de la branche master de Git lorsque vous mettez initialement en place et/ou ajoutez un rôle, mais ne met pas automatiquement le code à jour après cela.


 * Exécutez l'interpréteur PHP MediaWiki.
 * Connectez vous en ssh à vagrant et exécutez . Vous pourriez avoir besoin de l'exécuter avec.


 * Exécutez l'interpréteur SQL MediaWiki
 * Connectez vous en ssh à vagrant et exécutez . Vous pourriez avoir besoin de l'exécuter avec.

"NN packages peuvent être mis à jour. NN mises à jour sont des mises à jour de sécurité." Dans "vagrant ssh" :
 * Mettre à jour les paquets logiciels de la machine virtuelle ?
 * ne met pas à jour les paquets "système" de la machine virtuelle. Lorsque vous vous connectez en ssh via vagrant, le message d'ouverture de session vous informera que :
 * pour mettre à jour tous les paquets, saisissez
 * pour "l'installation automatique des mises à niveau de sécurité (et autres)", semblable à des instances Cloud VPS, entrez
 * pour mettre à jour les mêmes paquets qui sont sur ​​les serveurs WMF de production... "TODO"


 * Personnalisez Vagrant.
 * Vous ne devriez jamais avoir besoin de changer directement le fichier Vagrantfile. Il y a différents aspects de vagrant que vous pouvez personnaliser :
 * * Les réglages système (utilisateur git, ports, ram, ip, redirection de port) peuvent être personnalisés via le fichier .settings.yaml. Voir  et   pour les instructions. Ainsi par exemple vous pouvez exécuter   pour activer la redirection des ports de l'hôte:1234 vers le client:80.
 * * Effectuez des étapes supplémentaires après le chargement du fichier Vagrantfile en créant un fichier appelé "Vagrantfile-extra.rb" et en le plaçant dans le même dossier que Vagrantfile. Il sera chargé automatiquement. En cas de conflit, les valeurs du fichier «extra» remplaceront les valeurs de ce fichier. Voir l'exemple dans "support/ directory".


 * Ajouter du code Puppet personnalisé ?
 * Ceci est idéal si vous souhaitez travailler sur votre propre site MediaWiki localement et laisser le MediaWiki-Vagrant installer vos dépendances pour vous. C'est idéal si vous avez votre propre "fork". Il y a une distinction entre un rôle et ce cas d'utilisation. Les rôles sont destinés à être installés dans un ordre quelconque et sans rupture. Si votre "fork" a besoin d'appels différents et cause des problèmes avec les rôles, créez votre propre classe et appelez ce que vous avez besoin, y compris les rôles.
 * Pour ce faire, placez votre code puppet personnalisé dans  avec votre propre classe, comme ce qui suit :

Pour appliquer votre classe, ajoutez la dans la clé "classes" dans. Vous pouvez créer le fichier s'il n'existe pas.

Ensuite, exécutez  pour appliquer la modification via Puppet.


 * Mettre à jour MediaWiki-Vagrant lui-même ?
 * (Par exemple, pour utiliser de nouveaux rôles.) Dans un terminal, accédez au répertoire vagrant sur l'ordinateur hôte et saisissez une commande standard git comme . En général, vous voulez exécuter   après la mise à jour pour appliquer les nouveaux changements de Puppet à votre machine virtuelle.


 * Exécuter les applications GUI sur la machine virtuelle ?
 * Si vous avez un serveur X d'installé, connectez vous en SSH dans la machine virtuelle en utilisant  pour activer le transfert de X. (Les utilisateurs de Mac doivent mettre à jour avec la dernière version de XQuartz.)


 * Comme alternative, vous pouvez exécuter la machine virtuelle en mode graphique, ce qui vous permet d'interagir avec la machine virtuelle comme si elle avait un affichage physique. Pour activer le mode GUI, créez un fichier appelé  dans le dossier racine du dépôt, avec ceci commme contenu :


 * Enregistrez le fichier et lancez  suivi de  . L'affichage de la machine virtuelle apparaîtra dans une fenêtre sur votre bureau.


 *  Ajuster les ressources allouées à la VM ?
 * Si vous souhaitez allouer plus ou moins de CPU/RAM à la machine virtuelle, voir  pour les instructions.

Alternativement, vous pouvez le faire en créant Vagrantfile-extra.rb (voir support/ dir pour un exemple) :


 * Changer l'éditeur utilisé pour les messages "git commit" ?


 * Définir un nom d'hôte personnalisé ?
 * Allez à Horizon, cliquez sur Web Proxies, et entrez un nom d'hôte DNS, par exemple

Affichez votre nouveau wiki sur « http:// /wiki/ »


 * Faire pointer le nom d'hôte personnalisé vers la page d'accueil de mon rôle vagrant au lieu de la page d'accueil wiki ?
 * Créez un fichier local.yaml dans le répertoire /vagrant/puppet/hieradata. Dans ce dernier, ajouter :

Exécutez.


 * Exécuter une branche de MediaWiki autre que celle du master ?
 * Configurez la clé "" dans . Vous pouvez créer le fichier s'il n'existe pas.

Paramètres MediaWiki
Comme une alternative à la gestion de tous les paramètres MediaWiki dans un seul grand fichier ,pensez à regrouper vos configurations par composant ou thème, et à la création d'un fichier PHP séparé dans   pour chaque groupe. Il est donc assez facile de garder vos paramètres organisés, pour désactiver provisoirement des configurations spécifiques, et pour partager les paramètres avec d'autres.

MediaWiki chargera automatiquement tous les fichiers PHP dans  dans l'ordre lexical. Vous pouvez contrôler l'ordre dans lequel vos configurations sont définies en ayant l'habitude d'ajouter un préfixe à deux chiffres pour chaque nom de fichier.

Par exemple :

 settings.d/   ├── 10-RunFirst.php ├── 20-SomeExtension.php └── 99-RunLast.php Notez que les fichiers de paramètres dans  sont automatiquement créés et détruits en réponse à votre configuration Puppet. Ne mettez pas vos paramètres personnalisés ici, parce que Puppet va les effacer ou les remplacer. Gardez vos fichiers de paramètres personnalisés dans  à la place.

Drapeaux Vagrant
vagrant config --list affiche une liste de tous les drapeaux Vagrant actuels.

Après le  initial, dans votre répertoire vagrant, vous pouvez ensuite initialiser un des drapeaux vagrant qui apparait dans la liste de configuration, par exemple

File d'attente des tâches
Si vous testez quelque chose qui doit désorganiser la file d'attente, vous devrez peut-être augmenter le nombre d'exécuteurs de tâches. Actuellement, cette option n'est pas disponible dans LocalSettings.php, mais doit être définie dans le fichier de configuration du programme d'exécution du travail.


 * 1) Ouvrir
 * 2) Modifier la valeur pour la clé $sode2 de $code3 vers la valeur désirée (disons, $code4)
 * 3) Re-provisionner avec $code5
 * 4) Attention cela va créer une différence entre votre code et celui du Master de Git
 * 1) Change the value for the ' ' key from   to the desired value (say,  )
 * 1) Re-provision with
 * 1) Beware this will be a difference from the git master in your code

Voir les instructions ci-dessus pour ajuster le nombre de coeurs (core) de la CPU convenablement (hautement recommandé pour les tâches dépendant de la CPU telles que le transcodage video).

Espace supplémentaire de stockage
Par défaut, il y a relativement peu de place sur la partition racine (root) de la VM. Si vous envisagez de tester le téléversement et le traitement de gros fichiers image ou vidéo, cela peut être insuffisant.

Etapes manuelles:
 * Arrêter la machine virtuelle
 * Ouvir le gestionnaire de VirtualBox
 * Sélectionner la VM et aller dans les paramètres (Settings)
 * Sous Storage, selectionner "Controller: SATA" et cliquez sur l'icône "Add hard disk" pour ajouter un disque.
 * Sélectionner le type par défaut d'image disque.
 * Renommer le disque 'VagrantImageSpace' ou similaire, et attribuez lui assez d'espace (disons, 80GB) -- par défaut le fichier commencera petit et grossira en fonction de l'utilisation courante, donc donnez lui l'espace correspondant à ce que vous pourriez avoir besoin
 * Fermer les dialogues et redémarrez la VM
 * Exécuter  pour obtenir un shell dans le terminal
 * Exécuter  pour définir les nouvelles partitions...
 * Répondre,  ,  , et faire Entrer deux fois pour la taille par défaut
 * Entrer  pour enregistrer la talbe des partitions
 * Exécuter  pour créer le système de fichiers
 * Exécuter  pour modifier les points de montage
 * Ajouter à la fin, la ligne:
 * enregistrer et sortir
 * Exécuter  pour monter le système de fichiers
 * Exécuter  pour définir les droits sur les fichiers
 * Sortir du shell
 * Redémarrer (reboot) la VM


 * Shut down the VM
 * Open VirtualBox Manager
 * Select the VM and go into Settings
 * Under Storage, select "Controller: SATA" and click the "Add hard disk" icon.
 * Select the default disk image type.
 * Name the disk 'VagrantImageSpace' or similar, and give it enough space (say, 80GB) -- by default the file will start small and expand to actual usage, so give as much space as you might need
 * Close out the dialogs and restart the VM
 * Run  to get a shell inside the terminal
 * Run  to set up new partitions...
 * Type,  ,  , and hit (enter) twice for default size
 * Type  to save the partition table
 * Run  to create the filesystem
 * Run  to edit the mounts list
 * Add line at end:
 * save out
 * Run  to mount the filesystem
 * Run  to set the file permissions
 * Exit the shell
 * Reboot the VM

Création des rôles
La machine virtuelle créée par MediaWiki-Vagrant ressemble à l'environnement de production de Wikimedia sur les points clés, et elle utilise le même outil —Puppet— c'est ce que l'équipe des opérations techniques de Wikimedia utilise pour gérer les serveurs de production et les instances Cloud VPS de Wikimedia. Puppet est un outil de gestion de configuration qui fournit un langage spécifique aux domaines pour traduire les configurations logicielles de manière déclarative. Les fichiers contenant le code de Puppet sont appelés « manifestes ». Lorsque Puppet fonctionne, il interprète les manifestes que vous déclarez et configure la machine en conséquence. Un rôle Vagrant est un ensemble de manifestes de Puppet.

Le code de base de Puppet pour MediaWiki-Vagrant contient des abstractions qui le rendent facile pour automatiser la configuration des extensions MediaWiki et des logiciels connexes. Si vous êtes un développeur travaillant sur un projet de logiciel relatif à MediaWiki, vous êtes encouragés à soumettre un patch avec un rôle de Puppet pour votre projet. L'ajout d'un rôle Vagrant pour votre projet permet aux autres développeurs d'accéder facilement à votre travail. L'utilisation d'une machine virtuelle configurée en tant que "bac à sable" de développement pour votre projet réduit le risque d'erreurs de type "ça marche chez moi" qui résultent souvent des développeurs distants géographiquement et travaillant avec des environnements incompatibles.

La meilleure façon de commencer avec des rôles personnalisés est de regarder comment les rôles existants sont mis en œuvre dans. Ces rôles dépendent de modules de Puppet dans  (habituellement,   est traduit en appel à  ) et utilise les fichiers et les modèles des autres répertoires de. Le code de Puppet est généralement bien documenté et contient des exemples qui démontrent son bon usage.

Quelques uns des modules Puppet les plus utiles:
 * $ext: installer et configurer une extension ([$ext-example exemple])
 * $doc: créer une documentation ou une page de test sur le wiki (exemple: [$decl déclaration], [$page page])
 * $dump: importer un dump wiki ([$dump-example exemple])
 * $pack: installer un paquet système ([$pack-example exemple])
 * $exec: exécuter une commande shell ([$exec-example exemple])


 * mediawiki::extension - install and configure an extension (example)
 * mediawiki::import::text - create a documentation or test page on the wiki (example: declaration, page)
 * mediawiki::import::dump - import a wiki dump (example)
 * require_package - install a system package (example)
 * exec - execute a shell command (example)

Installer une instance dans Cloud VPS
Vous pouvez utiliser MediaWiki-Vagrant du Cloud VPS pour installer MediaWiki sur une instance du Cloud VPS de Wikimedia et activer les rôles MediaWiki-Vagrant à l'intérieur.

Bogues
Si vous repérez un bug dans MediaWiki-Vagrant, prenez le temps de nous le signaler. Tout d'abord, assurez-vous que le bug est pas un bug de Vagrant ou VirtualBox connu en recherchant le Vagrant issue tracker on GitHub et le VirtualBox bugtracker. Si ce n'est pas le cas, allez-y et soumettez le bogue dans Wikimedia Phabricator. Décrivez clairement le problème et incluez les étapes pour le reproduire chaque fois que c'est possible.

Liens

 * Page de project sur Ohloh
 * [$github MediaWiki-Vagrant sur GitHub]
 * [$phab Traqueur de problèmes sur Phabricator]
 * MediaWiki-Vagrant on GitHub
 * Issue tracker on Phabricator
 * Commandes Bash nécessaires pour un démarrage rapide sous Ubuntu
 * Commandes Bash nécessaires pour un démarrage rapide sous Ubuntu