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.



Configuration requise

 * CPU
 * Processeur x86 64-bit


 * OS
 * Linux, macOS, ou 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 disposer de 10-12 GiB 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 de Linux Debian et le code source de 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.
 * 3) Téléchargez VirtualBox
 * 4) Téléchargez la dernière version de Vagrant.
 * 5) Clone code into your current directory:
 * 6) Enter vagrant directory to run   commands in:
 * 7) Run setup script to setup vagrant before starting the machine:
 * Linux/macOS:
 * Windows:
 * 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) Start the virtual machine:
 * Pay attention to the console output to make sure that there are no errors.
 * 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.
 * 2) Activez les fonctionnalités additionnelles de MediaWiki, par exemple :
 * To see a list of features (vagrant roles) you can enable, run:
 * To enable a feature, for example the, run:
 * To apply the roles you've enabled to your wiki, run:
 * 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.
 * 2) Activez les fonctionnalités additionnelles de MediaWiki, par exemple :
 * To see a list of features (vagrant roles) you can enable, run:
 * To enable a feature, for example the, run:
 * To apply the roles you've enabled to your wiki, run:
 * To apply the roles you've enabled to your wiki, run:
 * To apply the roles you've enabled to your wiki, run:

If you run Windows
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).

MediaWiki out-of-the-box will likely run slow (page loads take 5+ seconds). This is because the virtual machine uses a shared file system that retrieves the files very slowly. Enabling NFS on Windows by installing the Vagrant WinNFSd plugin with, enabling NFS shares with  , and restarting the machine with   should significantly speed up page load times. You should make sure that the plugin is installed every time you run the machine as well. You can further speed it up by enabling, however, be warned that your wiki may run into weird errors because some files may not be updated completely when using the cache.

You can also speed up Mediawiki by using. Make sure not to enable it at the same time as. Enable it with  and run   in an shell run as an administrator. If you don't run it as an administrator, you will be warned with an error when vagrant goes up and when you go to the wiki address, you will see a. When prompted, type in the username of your account (the name of your home user directory) and password (your Microsoft account password if your account is not a local account with a normal password).



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 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.
 * 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.
 * Utilisez http://127.0.0.1:8080/info.php pour vérifier que le serveur Apache/PHP est en cours d'exécution.

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.
 * 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 :
 * 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).
 * 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.
 * peut vous dire que « L'exécutable 'bsdtar' Vagrant essaie de s'exécuter et n'a pas été trouvé dans la variable PATH. » Vous pouvez corriger ceci sous Ubuntu avec.
 * Sous Ubuntu avec Secure Boot activé, vous aurez du mal à installer VirtualBox. Votre machine peut vous donner du fil à retordre lorsque vous exécutez . Si c'est le cas, vous pouvez rectifier la situation en signant le module de noyau associé. Voyez les instructions pas à pas dans ce billet de demande à ubuntu.

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.

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. 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.

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 importe un fichier XML dans MediaWiki, ne gère pas les wikis autres que celui par défaut (voir 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 :



Pour aller plus loin


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
Configure clear cache to automatically reload after clearing, and set up keyboard shortcuts (e.g. Ctrl for clear&reload, Ctrl to switch XDebugger on/off)
 * 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 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/... )

<span id="Log_files">

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.

<span id="Running_and_debugging_unit_tests">

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.

<span id="Running_browser_tests">

Exécuter les tests du navigateur
Voir.

For browser end-to-end tests (Selenium), see

<span id="Pushing_commits">

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.

Gerrit
Pour soumettre des modifications, utilisez  pour accéder à votre dossier d'extensions. Suivez ensuite les instructions pour soumettre une correction via Gerrit.

Résolution des problèmes

 * Vérifiez la version de PHP et les paramètres.
 * 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.


 * <span id="Adjust_CPU"> 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 &lt;hostname>

Affichez votre nouveau wiki sur « http:// /wiki/ » Afficher votre nouveau wiki sous  http://&lt;hostname>/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.

<span id="Advanced_usage">

Utilisation avancée
<span id="MediaWiki_settings">

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 :

<pre style="background-color: #efefef; border: 0; display: inline-block; font-family: Consolas, monaco, monospace; margin: 0.4em 0 1em; padding: 0.2em 0.6em;"> 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.

<span id="Vagrant_flags">

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

<span id="Job_queue">

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é ' ' de   vers la valeur désirée (disons,  )
 * 3) Re-provisionner avec
 * 4) Attention cela va créer une différence entre votre code et celui du Master de Git

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).

<span id="Additional_storage_space">

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

<span id="Authoring_roles">

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:


 * mediawiki::extension - installer et configurer une extension (exemple)
 * mediawiki::import::text - créer une documentation ou une page de test sur le wiki (exemple: déclaration, page)
 * mediawiki::import::dump - importer un dump wiki (exemple)
 * require_package - installer un paquet système (exemple)
 * exec - exécuter une commande shell (exemple)

<span id="Setting_up_an_instance_on_Cloud_VPS">

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
 * MediaWiki-Vagrant sur GitHub
 * Traqueur de problèmes sur Phabricator
 * Commandes Bash nécessaires pour un démarrage rapide sous Ubuntu
 * Commandes Bash nécessaires pour un démarrage rapide sous Ubuntu