MediaWiki-Vagrant

From mediawiki.org
This page is a translated version of the page MediaWiki-Vagrant and the translation is 100% complete.
Aperçu visuel de Vagrant
Aperçu visuel de Vagrant
Logo de Vagrant pour MediaWiki
Logo de Vagrant pour MediaWiki
Bryan Davis explique dans une interview à Wikimania ce qu'est MediaWiki Vagrant.
TechTalk sur MediaWiki - Vagrant par Bryan Davis et Dan Duvall
Diapositives de TechTalk sur MediaWiki - Vagrant par Bryan Davis et Dan Duvall

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 se bloquer.
Disque
Pour les installations complexes, il faut 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 home 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 sudo apt-get install nfs-kernel-server.
    • Fedora vient habituellement avec NFS installé; si ce n'est pas le cas, exécutez sudo dnf install nfs-utils.
  3. Téléchargez VirtualBox[1]
  4. Obtenir Vagrant. Note that Vagrant v2.3.7 is the last version licensed under a free license.[2]
  5. Clonez le code dans votre répertoire actuel. (ne pas cloner dans un répertoire de WSL - Windows Subsystem for Linux)[3]
    $ git clone --recursive https://gerrit.wikimedia.org/r/mediawiki/vagrant
    
  6. Se positionner dans le répertoire vagrant pour exécuter les commandes vagrant avec :
    $ cd vagrant
    
  7. Lancer le script de configuration de vagrant avant de démarrer la machine :
    Linux / macOS :
    $ ./setup.sh
    
    Windows :
    $ ./setup.bat
    
    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 vagrant hiera mediawiki::branch REL1_27
  8. Activez la machine virtuelle :
    $ vagrant up
    
    Doing this for the first time might ask for your password as setting up directory sharing via NFS requires sysadmin rights. You can avoid that by setting the appropriate sudo permissions, as described here.
    Surveillez les messages sur la console et assurez-vous qu'il n'y a pas d'erreurs. Si vous rencontrez des erreurs, la section des erreurs au démarrage peut vous aider.
  9. Exécutez la commande vagrant open pour ouvrir votre instance MediaWiki. Vous pouvez vous connecter avec le nom d'utilisateur Admin et le mot de passe vagrant.
  10. Activez les fonctionnalités additionnelles de MediaWiki et les extensions.
    Pour voir la liste des fonctionnalités que vous pouvez activer (les rôles vagrant) entrez :
    $ vagrant roles list
    
    Si vous voulez activer par exemple la fonctionnalité VisualEditor , entrez :
    $ vagrant roles enable visualeditor
    
    Pour appliquer les rôles que vous aviez sur votre wiki, entrez :
    $ vagrant provision
    
vagrant up échoue si le fournisseur par défaut de VirtualBox est utilisé et que le nombre de CPUs virtuelles sur l'ordinateur excède 32. Utilisez vagrant config vagrant_cores <nombre de coeurs> pour assigner moins de 32 coeurs à la machine virtuelle.
Cela peut prendre une heure ou plus avant que le premier vagrant up soit terminé.

Windows Subsystem for Linux (WSL)

Si vous utilisez le shell WSL compatible Linux sous Windows 10: exécutez les commandes avec vagrant.exe au lieu de vagrant. Lancez vagrant.exe config --required au lieu de ./setup.bat, 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 #wikimedia-tech connecter.

  • Quelques fois vous pouvez corrigerréparer des installations cassées (par exemple si on vous répond "No wiki found..." en exécutant vagrant destroy; vagrant up 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 la 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
    • Error: Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find declared class
  • Utilisez http://127.0.0.1:8080/info.php pour vérifier que le serveur Apache/PHP est démarré et opérationnel.

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 présenter 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 greffon 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 vagrant/mediawiki est à jour :
$ cd vagrant/mediawiki
$ git pull
  • 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 :
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
Si vous avez supprimé toute les anciennes VM, vous verrez un message d'erreur comme "...path contains non-directory or non-existent components..." et vagrant up ne se terminera pas correctement. Si vous utilisez NFS (sur un hôte dont le système opérationnel n'est pas Windows), vous devriez corriger cela en supprimant /etc/exports : saisissez sudo rm -i /etc/exports Vagrant va recréer le fichier /etc/exports la prochaine fois que vous exécuterez vagrant up.
MediaWiki-Vagrant ne fonctionnera pas sur un hôte qui ne prend pas en charge VT-X, car il est prévu pour fonctionner avec un invité 64bit (machine virtuelle). MediaWiki-Vagrant doit fonctionner sur une machine virtuelle 64 bits, en partie parce qu'il utilise des paquets deb de la production WMF qui sont uniquement compilés pour l'architecture amd64.

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 [1]).
  • 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 vagrant up. 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 vagrant config nfs_shares off.

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 modprobe nfsv3. Notez que ce serveur NFS de Debian ne démarre pas sans une entrée dans /etc/exports. Si sudo rpcinfo -p 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 /etc/exports 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 /opt) avant l'exécution de vagrant up.
    • Sinon, vous pouvez également désactiver les partages NFS via vagrant config nfs_shares off
  • L'installation de NFS semble parfois se bloquer (la commande initiale vagrant up 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.
  • vagrant up 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 sudo apt install libarchive-tools.
  • Sous Ubuntu avec Secure Boot activé, vous aurez du mal à installer VirtualBox. Votre machine peut vous donner du fil à retordre lorsque vous exécutez /sbin/vboxconfig. 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é vagrant up, désactivez SELinux via sudo setenforce 0 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é vagrant roles enable mediawiki --provision, assurez-vous d'avoir initialisé le fournisseur explicitement, par exemple via vagrant destroy suivi de vagrant up --provider=virtualbox
  • Si vous obtenez mount.nfs: mount to NFS server '10.11.12.13:download-directory/vagrant' failed: RPC Error: Unable to receive, exécutez vagrant config nfs_shares

Utilisation de base

Capture d’écran

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

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 /vagrant correspond au dossier MediaWiki-Vagrant de ​​votre machine hôte, et son contenu est partagé. Le code de MediaWiki est installé dans /vagrant/mediawiki. 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 le core et dans tous les répertoires d'extensions et d'habillages
  2. composer update pour veiller à ce que les dernières bibliothèques "Composer-managed" soient disponibles.
  3. Et pour finir, le script update.php.

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:

git pull

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

vagrant provision

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

Avertissement Avertissement : Si vous faites des mises à jour à partir de git manuellement, vous devrez peut-être exécuter composer update pour télécharger les bibliothèques externes requises par MediaWiki. Vous pouvez exécuter le script checkComposerLockUpToDate.php pour voir si composer update est nécessaire.
Certains projets ont des dépendances NPM, souvent pour des motifs liés uniquement au développement, et qui ne sont pas installées par Composer. On peut les trouver approximativement avec find -not \( -name node_modules -prune \) -name package.json et les installer manuellement selon les besoins après une mise à jour en exécutant npm install dans chacun des répertoires désirés.

Déconnectez-vous de votre machine virtuelle en tapant logout ou en appuyant sur Ctrl+D. Maintenant que vous êtes de nouveau sous 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 # Affiche une liste des rôles disponibles. $ vagrant roles enable rôle # Activer les "rôles" pour cette machine. $ vagrant roles disable rôle # Désactiver les "rôles" pour cette machine. $ vagrant provision # Une fois terminée l'activation/désactivation des rôles, lancez ceci pour que les modifications prennent effet.

Regardez un petit 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 ffi 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 (bogue 53864).

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

Problèmes avec des rôles spécifiques

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 vagrant roles enable wikidata && vagrant provision ne fonctionnera pas. Voici un ensemble complet de commandes pour définir le rôle Wikidata et le rendre opérationnel.

$ vagrant up
$ vagrant git-update
$ vagrant ssh
$ sudo apt-get update && sudo apt-get upgrade
$ composer selfupdate --update-keys
$ composer config --global process-timeout 9600
$ exit
$ vagrant roles enable wikidata
$ vagrant provision

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 import-dump qui importe un fichier XML dans MediaWiki, ne gère pas les wikis autres que celui par défaut (voir phab:T183274#3893785). Vous devez exécuter le script importDump.php à l'intérieur du dialogue Vagrant.

Voici la procédure pour importer des dumps XML.

$ mkdir wikidata_dumps
$ cd wikidata_dumps
  • téléchargez les blocs pages-articles. Par exemple :
$ wget https://dumps.wikimedia.org/wikidatawiki/latest/wikidatawiki-latest-pages-articles10.xml-p5264684p6341661.bz2
  • autoriser l'importation d'entités Wikibase (voir phab:T72898#1588002). Ajoutez la ligne suivante à votre LocalSettings.php :
$wgWBRepoSettings[ 'allowEntityImport' ] = true;
  • le script BASH suivant peut vous aider à suivre le processus. Vous pouvez le recopier dans un fichier import_wikidata.sh . Notez que la ligne surlignée appelle le script actuel d'importation :
#!/usr/bin/env bash

chunks=$(find wikidata_dumps -type f)
for chunk in $chunks
do
    now=$(date)
    echo "$now: started import of $chunk" >> wd_import.log
    echo "-------------------------------------------" >> wd_import.log
    bzcat $chunk | mwscript importDump.php --wiki=wikidatawiki --uploads --debug --report 10000 2>>wd_import.log
    now=$(date)
    echo "-------------------------------------------" >> wd_import.log
    echo "$now: completed import of $chunk" >> wd_import.log
    echo "===========================================" >> wd_import.log
done
  • connectez vous à l'intérieur du dialogue Vagrant et lancez le script. Les messages de débogage devraient y apparaître :
$ vagrant ssh
$ cd /vagrant
$ sudo chmod +x import_wikidata.sh
$ ./import_wikidata.sh
  • vous pouvez suivre le journal de progression depuis l'extérieur du dialogue Vagrant :
$ tail -f wd_import.log

Pour aller plus loin

Accélérer MediaWiki sous Windows

Une fois installé, MediaWiki s'avère très lent (le chargement des pages prend plus de 5 secondes). Ceci est dû au fait que la machine virtuelle utilise un système de fichiers partagé qui récupère les fichiers très lentement. Vous pouvez réduire de manière significative le temps de chargement des pages en activant NFS sous Windows (installer le greffon Vagrant WinNFSd avec vagrant plugin install vagrant-winnfsd), puis en activant les partages NFS avec vagrant config nfs_shares true, et en redémarrant votre machine avec vagrant reload. Vous devez vérifier aussi que le greffon est installé à chaque fois que vous démarrez la machine.[4] Vous pourrez ensuite l'accélérer en activant nfs_cache, néanmoins ayez conscience que votre wiki pourra générer des erreurs bizarres car certains fichiers n'auront pas eu le temps d'avoir été mis à jour totalement lorsque le cache sera utilisé.

Vous pouvez aussi accélérer Mediawiki en utilisant smb_shares. Vérifier que nfs_shares ne soit pas activé au même moment. Activez-le avec vagrant config smb_shares yes et exécutez vagrant reload dans le shell (console système) en tant qu'administrateur. Si vous n'exécutez pas en tant qu'administrateur, vous aurez un avertissement signalant l'erreur que vagrant est démarré, et si vous allez sur l'adresse wiki, vous aurez Wiki not found. Lors de l'invite, entrez le nom d'utilisateur de votre compte (le nom de votre répertoire utilisateur Home) et votre mot de passe (celui de votre compte Microsoft si votre compte n'est pas un compte local avec un mot de passe normal).

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/ :

# clonez et stockez une copie propre du noyau MediaWiki dans ~/projects/mediawiki/core
cd ~/projects/mediawiki/
git clone ssh://<your-gerrit-username>@gerrit.wikimedia.org:29418/mediawiki/core

# clonez une copie propre de vagrant dans ~/projects/mediawiki/vagrant
cd ~/projects/mediawiki
git clone ssh://<your-gerrit-username>@gerrit.wikimedia.org:29418/mediawiki/vagrant

# créez le sous-répertoire mediawiki s'il n'existe pas
cd ~/projects/mediawiki/vagrant
mkdir ~/projects/mediawiki/vagrant/mediawiki

# copiez le noyau MediaWiki "propre" dans le répertoire "propre" vagrant/mediawiki
cp -r ~/projects/mediawiki/core/ ~/projects/mediawiki/vagrant/mediawiki

Mise à jour des dépôts clonés

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

cd ~/projects/mediawiki/core
git pull

cd ~/projects/mediawiki/vagrant
git pull
git submodule update --init --recursive

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

vagrant git-update

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 :

vagrant plugin install vagrant-proxyconf

Pour configurer les paramètres de proxy pour tous les logiciels sur toutes les VM vagrant, ajoutez les lignes suivantes à votre $VAGRANT_HOME/Vagrantfile (par défaut ~/.vagrant.d/Vagrantfile).

Vagrant.configure("2") do |config|
  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http     = "http://192.168.0.2:3128/"
    config.proxy.https    = "http://192.168.0.2:3128/"
    config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"
  end
  # ... d'autres choses
end

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,

config.proxy.no_proxy = "localhost,127.0.0.1,.example.com,.someinternaldomain.com"

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,

config.proxy.enabled         # → toutes les applications sont activées (par défaut)
config.proxy.enabled = true  # → toutes les applications sont activées
config.proxy.enabled = { svn: false, docker: false }
                             # → des applications spécifiques sont activées.
config.proxy.enabled = ""    # → toutes les applications sont désactivées
config.proxy.enabled = false # → toutes les applications sont désactivées

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.

Débogage

Vagrant

Vous pouvez déboguer MediaWiki-Vagrant lui-même (par exemple les erreurs survenant durant le vagrant up) avec VAGRANT_LOG :

VAGRANT_LOG=debug vagrant up

Provisionnement

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

PUPPET_DEBUG=1 vagrant provision

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#MediaWiki debugging using Xdebug and an IDE in your host 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 purge du cache pour recharger automatiquement après l'effacement, 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 copier 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/...)

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 PHPUnit pour TOUTES les extensions :

$ vagrant ssh
$ cd /vagrant/mediawiki
$ sudo -u www-data env "PHPUNIT_WIKI=wiki" composer phpunit:entrypoint

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

$ sudo -u www-data env "PHPUNIT_WIKI=wiki" "PHP_IDE_CONFIG=serverName=mwvagrant" "CIRRUS_REBUILD_FIXTURES=yes" "XDEBUG_CONFIG=idekey=netbeans-xdebug" composer phpunit:entrypoint -- --stop-on-failure --stop-on-error extensions/ExtensionName/tests/phpunit/

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 par l' utilisateur www-data 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 unittest.php dans la racine du répertoire mediawiki . Ne faites pas de validation (commit) pour ce fichier dans le dépôt. Collez le code suivant dedans :
unittest.php 
<html><body><pre>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once 'includes/WebStart.php';
$_SERVER[ 'argv' ] = array(
	'--configuration', '/vagrant/mediawiki/tests/phpunit/suite.xml',
	'/vagrant/mediawiki/extensions/JsonConfig/tests/phpunit/JCObjContentTest.php',
);
require_once '/vagrant/mediawiki/tests/TestsAutoLoader.php';
require_once '/vagrant/phpunit.phar';
PHPUnit_TextUI_Command::main(false);


  • 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 à /w. 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

Pour les tests unitaires JavaScript (QUnit), voir Tests unitaires JavaScript .

Pour les tests de bout en bout du navigateur (Selenium), voir Exécuter les tests du navigateur VisualEditor via Vagrant

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 des URL https://. Pour éviter leur redéfinition au cas par cas, exécutez :

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

Vous devez aussi avoir vos clés ssh dans ~/.ssh.

Gerrit

Pour soumettre des modifications, utilisez cd 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 settings.d/. Voir le fichier README et le fichier d'exemple 00-debug.php.
Mettre à jour le code MediaWiki ?
Le plus simple est d'utiliser vagrant git-update à 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 fetch, pull, etc. dans les répertoires vagrant/mediawiki et vagrant/mediawiki/extensions/"SomeExtension". 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 copie 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 mwscript eval.php. Vous pourriez avoir besoin de l'exécuter avec sudo.
Exécutez l'interpréteur SQL MediaWiki
Connectez vous en ssh à vagrant et exécutez mwscript sql.php. Vous pourriez avoir besoin de l'exécuter avec sudo.
Mettre à jour les paquets logiciels de la machine virtuelle ?
vagrant provision 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 :
"NN packages peuvent être mis à jour.
NN mises à jour sont des mises à jour de sécurité."
Dans "vagrant ssh" :
  • pour mettre à jour tous les paquets, saisissez sudo apt-get update && sudo apt-get upgrade
  • pour "l'installation automatique des mises à niveau de sécurité (et autres)", semblable à des instances Cloud VPS, entrez sudo unattended-upgrade
  • pour mettre à jour les mêmes paquets qui sont sur ​​les serveurs WMF de production... "à faire..."
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 vagrant config --help et vagrant forward-port --help pour les instructions. Ainsi par exemple vous pouvez exécuter vagrant forward-port 1234 80 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 rouleaux doivent pouvoir être installés dans n'importe quel ordre et sans rupture. Si votre fork a besoin de différents appels et que vous avez des problèmes avec les rôles, créez votre propre classe et appelez ce dont vous avez besoin, y compris les rôles.
Pour faire cela, placez votre code puppet personnalisé dans puppet/modules/local/manifests/myown.pp avec votre propre classe, comme ceci :
class local::myown {
    include ::role::svg
}

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

classes:
  - local::myown

Ensuite, exécutez vagrant provision 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 git pull --ff-only. En général, vous voulez exécuter vagrant provision après la mise à jour pour appliquer les nouveaux changements de Puppet à votre machine virtuelle.
Exécuter les applications IHM sur la machine virtuelle ?
Si vous avez un serveur X d'installé, connectez vous en SSH dans la machine virtuelle en utilisant ssh --X 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é Vagrantfile-extra.rb dans le dossier racine du dépôt, avec ceci commme contenu :
Vagrant.configure('2') do |config|
    config.vm.provider :virtualbox do |vb|
        vb.gui = true
    end
end
Enregistrez le fichier et lancez vagrant halt suivi de vagrant up. 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 vagrant config --help pour les instructions.

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

Vagrant.configure('2') do |config|
    config.vm.provider :virtualbox do |vb|
        # See http://www.virtualbox.org/manual/ch08.html for additional options.
        vb.customize ['modifyvm', :id, '--memory', '768']
        vb.customize ['modifyvm', :id, '--cpus', '2']
    end
end
Changer l'éditeur utilisé pour les messages "git commit" ?
git config --global core.editor "vim"
Définir un nom d'hôte personnalisé ?
Allez à Horizon, cliquez sur Web Proxies, et entrez un nom d'hôte DNS, par exemple <hostname>

Afficher votre nouveau wiki sous http://<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 :
<rolename>::vhost_name:<hostname>
role::mediawiki::hostname: localhost

Exécutez vagrant provision.

Exécuter une branche de MediaWiki autre que celle du master ?
Configurez la clé "mediawiki::branch" dans puppet/hieradata/local.yaml. Vous pouvez créer le fichier s'il n'existe pas.
mediawiki::branch: "wmf/1.24/wmf18"
Ce changement doit être fait AVANT d'exécuter vagrant up pour la première fois. Si vous décidez de le faire plus tard, faites le changement, détruisez votre VM actuelle avec vagrant destroy -f, supprimez votre "mediawiki checkout" existant et enfin construisez une nouvelle VM avec vagrant up.
Vagrant est conçu pour fonctionner avec la branche principale (Master), et peut ne pas fonctionner parfaitement, ou pas du tout avec les anciennes versions du noyau et/ou des extensions [5].
Pour la branche de publication MediaWiki 1.35, quelques corrections sont nécessaires pour ajuster les exigences de la version PHP qui ne sont actuellement pas satisfaites. Voir Topic:W05qhsn58ztktod8 pour les instructions.

Utilisation avancée

Paramètres MediaWiki

Comme une alternative à la gestion de tous les paramètres MediaWiki dans un seul grand fichier LocalSettings.php , pensez à regrouper vos configurations par composant ou thème, et à la création d'un fichier PHP séparé dans settings.d/ 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 les autres.

MediaWiki chargera automatiquement tous les fichiers PHP dans settings.d/ 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 settings.d/puppet-managed 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 settings.d/ à la place.

Drapeaux Vagrant

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

Après le ./setup.sh initial, dans votre répertoire vagrant, vous pouvez ensuite initialiser un des drapeaux vagrant qui apparait dans la liste de configuration, par exemple vagrant config nfs_shares no

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 puppet/modules/mediawiki/templates/jobrunner.json.erb
  2. Modifier la valeur pour la clé 'runners' de 1 vers la valeur désirée (disons, 4)
  3. Re-provisionner avec vagrant --provision
  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).

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 (vagrant halt)
  • 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 (vagrant up)
  • Exécuter vagrant ssh pour obtenir un shell dans le terminal
    • Exécuter sudo fdisk /dev/sdb pour définir les nouvelles partitions...
    • Entrer n, p, 1 et presser Entrée deux fois pour la taille par défaut
    • Entrer w pour enregistrer la table des partitions
  • Exécuter sudo mke2fs /dev/sdb1 pour créer le système de fichiers
  • Exécuter sudo vi /etc/fstab pour modifier les points de montage
    • Ajouter à la fin, la ligne: /dev/sdb1 /srv/images ext4 errors=remount-ro 0 2
    • enregistrer et sortir
  • Exécuter sudo mount /srv/images pour monter le système de fichiers
  • Exécuter sudo chown www-data:www-data /srv/images pour définir les droits sur les fichiers
  • Sortir du shell exit
  • Redémarrer (reboot) la VM (vagrant halt; vagrant up)

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 logiciel lié à MediaWiki, vous êtes encouragé à soumettre un correctif avec un rôle de Puppet pour votre projet. L'ajout d'un rôle Vagrant à votre projet facilite la vérification de votre travail par d'autres développeurs. L'utilisation d'une machine virtuelle gérée comme bac à sable de développement pour votre projet réduit les risques d'erreurs "works-on-my-machine" qui résultent souvent de développeurs géographiquement éloignés travaillant dans 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 puppet/modules/role/manifests/*.pp . Ces rôles dépendent des modules Puppet dans puppet/modules (habituellement, foo::bar { ... } est traduit en appel à puppet/modules/foo/manifests/bar.pp) et utilise les fichiers et les modèles des autres répertoires de puppet/modules/role/*/rolename/ . Le code Puppet est généralement bien documenté et contient des exemples qui démontrent son utilisation appropriée.

Quelques uns des modules Puppet les plus utiles:

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 bogue dans MediaWiki-Vagrant, prenez le temps de nous le signaler. Tout d'abord , assurez-vous que le bogue est pas un bogue de Vagrant ou de VirtualBox connu en recherchant dans le suivi des problèmes Vagrant sur GitHub et le bugtracker de la VirtualBox. Si ce n'est pas le cas, allez-y et [le rapport de bogue] dans Wikimedia Phabricator. Décrivez clairement le problème et incluez les étapes pour le reproduire chaque fois que c'est possible.

Liens

Remarques

  1. Si vous êtes sur Fedora, ne suivez pas les instructions Oracle. Au lieu de cela, activez les dépôts RPMfusion (par exemple via la configuration de Apper), puis exécutez sudo dnf install VirtualBox VirtualBox-kmodsrc akmod-VirtualBox kmod-VirtualBox (note : c'est sensible à la casse et parfois sensible à la version ! Si vous ne trouvez pas le paquet, recherchez dans Discover à la place). Vous pouvez aussi suivre ce guide. Il est possible que vous puissiez obtenir une erreur à propos de votre noyau qui serait trop récent. Si c'est le cas, installez akmods-VirtualBox, et exécuter sudo akmods pour vous assurer que le module compile.
  2. Sous Fedora, vous pouvez exécuter sudo dnf install vagrant.
  3. https://github.com/hashicorp/vagrant/issues/10576#issuecomment-452793401
  4. https://peshmerge.io/how-to-speed-up-vagrant-on-windows-10-using-nfs/
  5. Vagrant dependent on MediaWiki 1.21+