Manual:Wiki family/fr

Voici les instructions sur la façon de configurer MediaWiki pour héberger plus d'un wiki. Plusieurs wikis situés sur le même serveur sont appelés famille de wikis (wiki-family) ou ferme de wikis (wiki farm). Une liste des familles de wikis connues est disponible sur.

Principes de base
La configuration la plus courante d’une famille de wiki fonctionne avec une unique version de MediaWiki. Les grandes étapes suivantes sont nécessaires pour ce scénario :
 * 1) Installez un site MediaWiki classique et créez un modèle de base de données à partir de ce site. Il peut être complètement vide (avec aucune ligne dans aucune table) ou contenir des pages initiales, des utilisateurs, des liens interwikis, etc... ou n’importe quelle autre donnée que vous souhaitez pour chaque nouveau membre de la famille.
 * 2) Installez votre serveur web pour acheminer le trafic de multiples origines vers l’installation du MediaWiki unique. Cela peut concerner plusieurs domaines, sous-domaines ou sous-répertoires, et peut être réalisé à l’aide des liens symboliques, des alias, de réécriture d’URL ou autres mécanismes.
 * 3) Configurez la famille dans LocalSettings.php, dans quatre grosses sections :
 * 4) D’abord, utilisez  ou  (ou similaire), et la constante (et variable d’environnement)   pour identifier les différents wikis (par exemple comme une variable nommée  ). Le précédent sert aux requêtes web, le dernier pour les scripts de maintenance (auxquels vous passerez le paramètre  ). N’oubliez pas d'arrêter proprement l’exécution à ce point si le wiki ne peut pas être identifié.
 * 5) Ensuite, définissez les variables de configuration qui sont « basées » sur l’identification du wiki. Parmi celles-ci :
 * 6) Ensuite, définissez les variables de configuration qui sont différentes pour chaque wiki. Celles-ci incluent : Elles peuvent aussi être incluses depuis un fichier séparé, par exemple.
 * 7) Enfin, le reste de LocalSettings.php configure tous les éléments courants, tels que les extensions, les habillages, etc.
 * 8) Les ressources partagés peuvent être configurées, telles que les utilisateurs, les sessions, les médias (téléversements), les liens interwikis, etc.
 * 9) Installer un nouveau wiki dans la famille se fait en créant la base de données et en important le modèle de base de données, et ensuite en exécutant  . La mise à niveau et les autres tâches de maintenance se font similairement.

La suite de cette page développe (ou le fera [update required) les différentes parties évoquées ci-dessus. Vous pouvez également vouloir configurer une base de données partagée.

Déclaration d'un long sélecteur
Cela vous permettra d'installer plus d'un wiki sur un seul serveur, en utilisant la même copie du code source.


 * 1) Téléversez les fichiers MediaWiki dans le dossier web de votre serveur web.
 * 2) Initialisez le wiki initial comme d’habitude. Pour plus de détails, voir.
 * 3) Après l'installation réussie, déplacez le fichier  dans le répertoire racine de votre wiki et renommez-le de manière à le retrouver facilement (par exemple LocalSettings_myFirstWiki.php)
 * 4) Répétez les étapes deux et trois ci-dessus pour chaque wiki que vous souhaitez créer, générant un nouveau fichier LocalSettings.php pour chacun d’eux (par exemple, LocalSettings_anotherWiki.php, etc.)
 * 5) Si deux wikis (ou plus) installés séparément doivent être fusionnés pour fonctionner en dehors des fichiers du wiki principal, alors après avoir renommé et déplacé chacun de vos fichiers LocalSettings.php dans le dossier principal du wiki, modifiez la variable  dans chacun des fichiers LocalSettings.php pour qu'elle pointe vers le répertoire du wiki principal.
 * 6) Créez un fichier LocalSettings.php pour vos paramètres globaux, puis sélectionnez l’une des deux possibilités suivantes :


 * Si vous possédez différents domaines (et/ou sous-domaines) pointant vers un répertoire de votre serveur, utilisez ceci :


 * Si vos wikis sont sur le même domaine, mais avec des chemins différents (par exemple,  , etc.), vous pouvez utiliser un équivalent de ceci :

Nous recommandons d’utiliser une base de données différente pour chaque wiki (en définissant un nom différent pour chacun d’eux). Toutefois, si vous êtes limité à une seule base de données, vous pouvez utiliser un préfixe différent pour séparer les différentes installations.

Il peut également être utile de simplement rediriger toute URL de wiki non reconnu vers l’URL « principale », à la place de « Ce wiki n’est pas disponible. Vérifiez la configuration. »

Utiliser EXPORT
Cette méthode nécessite que soit présent pour exécuter maintenance/update.php, ce qui, bien sûr, ne se fait pas à partir de la ligne de commande. Ceci peut être substitué en définissant une variable d’environnement :

Si vous employiez la méthode du sous-répertoire, vous pouvez utiliser :

Utiliser les paramètres de configuration
Si vous utilisez un fichier  séparé pour chaque wiki de la famille, comme suggéré dans la déclaration de sélecteur géant, alors vous pouvez utiliser le paramètre   pour dire à   quel fichier de configuration utiliser. Par exemple :

Sites de style Drupal
Comme ci-dessus, cette configuration vous permet d’installer plusieurs wikis en utilisant différentes bases de données utilisant le même code source sur un seul serveur. Cette configuration présente l’avantage de demeurer totalement transparente pour les utilisateurs et d’être raisonnablement sécurisée en ce qui concerne les images de répertoire.

 ServerAdmin me@myserver.com DocumentRoot /home/web/wiki.mysite.com ServerName wiki.mysite.com CustomLog /var/log/apache2/wiki.mysite.log common # Alias for the site to be accessible Alias /mediawiki/code /home/web/mediawiki/code # Alias for Wiki so images work Alias /images /home/web/mediawiki/sites/wiki.mysite.com/images # If you want to password protect your site #  #   AuthType Basic #   AuthName "My protected Wiki" #   AuthUserFile /etc/apache2/htpasswd/users-mywiki #  require valid-user #  
 * 1) Créez un répertoire de base pour contenir tous vos fichiers MediaWiki par exemple.
 * 2) Installez MediaWiki et les outils supplémentaires comme d’habitude, dans un sous-répertoire indiquant la version (par exemple  ).
 * 3) Liez le dossier indiquant la version, à un répertoire de code. Par exemple,
 * 4) Créez un répertoire sites pour contenir nos images et paramètres :
 * 5) Configurer le wiki comme d’habitude à partir du répertoire /code.
 * 6) Après une installation réussie, déplacez le fichier LocalSettings.php dans un répertoire sites qui sera la cible lorsque le site est vérifié. Par exemple, pour capturer http://mysite.com/mywiki, on pourrait créer le répertoire mysite.com.mywiki. par exemple,  . Voir le fichier settings.php de Drupal pour plus d'informations à ce sujet.
 * 7) Si vous avez l’intention d’utiliser des fichiers multimédias, créez un répertoire d’images dans votre dossier de site. Par exemple,  .  Rendez-le accessible en écriture si nécessaire.
 * 8) Placez le fichier LocalSettings.php de Drupal dans votre répertoire principal :
 * 9) Modifiez le fichier LocalSettings.php de chaque sous-site pour pointer vers les bons endroits :
 * 10) D'abord commentez le code contenant   (lignes 16-20 en 1.15.3) car cela défini le répertoire de "code" par.
 * 11) Insérez ensuite les deux lignes suivantes pour vous assurer que les fichiers image sont accessibles, par exemple :  et . Ceux-ci doivent être rangés quelque part après l'appel à   (ligne 25 dans 1.15.3), parce que sinon les variables seront réinitialisées.
 * 12) Faites les autres modifications comme nécessaire.
 * 13) Préparez votre installation Apache 2. Site d'exemple : wiki.mysite.com
 * 14) Créez un lien vers le répertoire code si nécessaire,   par exemple
 * 15) Créez une configutation VHost appropriée :
 * 11. Si vous configurez les sites localement, mettez à jour votre fichier  avec le nom des sites. Le site devrait maintenant fonctionner.

Dans mon cas, j'ai fait une autre copie du code à partir duquel j'ai installé et fait la mise à jour de mon LocalSettings.php et des bases de données. Notez que dans le code du compagnon Drupal n'est pas défini lorsque l'on exécute les scripts de maintenance à partir de la ligne de commande, donc cette solution ne permet pas d'utiliser les scripts de maintenance sans quelques modifications.

Méthode modifiée style Drupal pour Ubuntu
Une méthode simplifiée pour des wikis et des sous-wikis multiples (ou imbriqués) sous Ubuntu/Kubuntu qui est largement basée sur la méthode ci-dessus se trouve sur :
 * Conseils MediaWiki de Ubuntuguide.org

Wikis multiples se partageant des ressources communes
Vous voulez sauvegarder certains wikis en différentes langues, en partageant les mêmes fichiers média dans un autre wiki séparé.

Par exemple :


 * en.yourwiki.org -
 * fr.yourwiki.org -
 * de.yourwiki.org -
 * pool.yourwiki.org - les fichiers média pour tous ces wikis (comme Commons).
 * Comme il existe déjà un lien interwiki nommé  pour Wikimedia Commons, nous nommons nos fichiers wiki de médias « pool ».
 * Pensez d'abord à être créatif; si vous appelez votre wiki de fichiers média avec « media » (par exemple media.example.com), cela pourrait créer un conflit avec les espaces de noms internes et la nomenclature des fichiers média inclus ( [[media:file.ext]] ).

Dans votre système de fichiers, créez un répertoire pour chaque wiki. Exécutez le script d'installation pour chaque wiki.

Cette solution duplique le code source. Pour réduire cette duplication et pour améliorer les performances du cache, vous pouvez remplacer les répertoires  (≤ MW 1.20.x), ,  ,  ,  ,  ,   (≤ MW 1.17.x),  ,  ,  ,   et   (≥ MW 1.22.x ) pour les installations qui ne sont pas des fermes, par des liens symboliques vers les répertoires de la famille :

THIS WILL NOT WORK. Par exemple, entrez  puis entrez''

Pour faire la même chose dans Windows, utilisez

Interwiki
Maintenant vous devez paramétrer les liens interwiki entre tous les wiki, en éditant leurs bases de données MySQL (si vous préférez, installez et utilisez )
 * Table Interwiki
 * iw_prefix - entrez le code de la langue des wikis, "de" pour l'allemand, "en" pour l'anglais, "fr" pour le français et "pool" pour le mediapoolwiki
 *  iw_url - ceci est l'endroit où doit apparaître l'URL complète des wiki, par exemple  pour l'allemand (n'oubliez pas le "$1").

Entrez autant d'enregistrements dans la table Interwiki que vous avez de wikis différents (donc un enregistrement pour l'allemand, un pour l'anglais, et un pour les média par exemple).

Maintenant vous pouvez lier un article à son équivalent dans d'autres langues. Ajouter  sur une page crée un lien interwiki "Deutsch" (sous la barre de navigation) vers la page Hauptseite du wiki en allemand. Pour plus d'informations, voir

Notez la page Special:Interwiki : (vous verrez un long tableau) Ajoutez dans le wiki allemand le préfixe 'en' et l'URL http://en.yourwiki.org/index.php/$1 et cochez la case 'Als lokales Wiki definiert'. Faites le dans le wiki anglais de manière similaire avec la case à cocher 'Forward'. Et dans les deux wikis entrez un second préfixe 'pool' avec http://pool.yourwiki.org/index.php/$1 et cochez la case 'Forward'.

Téléversements
Soyez sûr que le répertoire "images" du poolwiki est autorisé en écriture.

Il est pratique de changer le lien "Téléverser un fichier" des wikis de langue pour pointer vers le site de téléversement du wiki pool. Ouvrez le fichier  de chaque wiki de langue et ajoutez :

En 1.17, vous devez également initialiser $wgUploadMissingFileUrl pour être redirigé vers le wiki 'pool' pour les liens rouges.

Utiliser des fichiers partagés
Pour utiliser les fichiers du poolwiki dans les wikis de langue, ouvrez le fichier  de chaque wiki de langue et ajoutez :

Vous pouvez maintenant intégrer les fichiers du poolwiki avec par exemple dans les wikis de langue.

Description des images
Dans chaque wiki de langue, ouvrez (en tant qu'admin) le message MediaWiki:Sharedupload-desc-here.

Changez le texte en quelque chose comme :

Ce fichier est enregistré sur notre poolwiki. Pour des informations sur l'image et la description, voir la

description ici.

(Et notez le ':' au début de la ligne, qui empêche 'pool' d'être inclus dans la liste interwiki sur la gauche de la page ).

Si vous voulez afficher la description du média, enregistrée sur le poolwiki également, ajoutez au  de chaque wiki de langue :

Paramètres partagés
Si vous avez plusieurs wikis, vous pouvez leur faire partager des paramètres similaires. Voici comment faire cela. Nous vous recommandons de séparer la configuration de votre extension dans un fichier différent de vos autres paramètres, comme détaillé ci-dessous. Ils peuvent être tous mis dans un grand fichier, mais cela n'est pas aussi pratique en fonction de vos besoins spécifiques.

Voici un exemple de structure de répertoire si vous réalisez tout ce qui suit :

en/ es/ pl/ ja/ pool/ ExtensionSettings.php WikiFamilySettings.php SharedMediaSettings.php

Configuration des extensions

 * Etape 1
 * Créez un fichier appelé ExtensionSettings.php avec le contenu suivant, et placez-le à un endroit similaire à l'exemple ci-dessus.


 * Etape 2
 * Editez le fichier LocalSettings.php de chaque wiki qui utilise les paramètres partagés, et ajoutez ce qui suit.
 * Etape 3
 * Maintenant ajoutez simplement toutes les références vers vos diverses extensions

Paramètres de la famille de wikis
Ce sont des paramètres que vous voulez appliquer à toute la famille de wikis. Par exemple, vous pouvez vouloir simplement basculer tous les wikis en mode lecture en même temps. Vous pouvez aussi enregistrer le nom d'utilisateur et le mot de passe pour la/les base(s) de données, s'ils sont les mêmes. Vous pouvez en plus contrôler les droits des utilisateurs sur le wiki entier à partir de ce seul fichier.

Tables partagées de la base de données
Voir le manuel des bases de données partagées pour la manière de configurer les tables partagées de la base de données.

Symlink method
The symlinks method was formerly a method that eliminated the need to have redundant copies of MediaWiki on your filesystem while providing flexibility and customization for each wiki. WARNING: As of recent MediaWiki versions, this doesn't work anymore. If you try this, your MediaWiki will break. Instead, it's highly recommended to follow its spiritual successor, the method used by the Wikimedia Foundation (and the method that's used to power Wikipedia, this wiki, and many more!).

$ ls -og lrwxrwxrwx 1 16 2008-11-03 06:29 aaa.example.org -> mediawiki lrwxrwxrwx 1 16 2008-11-03 06:29 bbb.example.org -> mediawiki lrwxrwxrwx 1 16 2008-11-03 06:29 ccc.example.org -> mediawiki

Voyons un exemple réel de. Dans la vie réelle nous devons nous accomoder des petites différences dans les noms et les bases de données des sites que nous gérons.

Notez que nous devons encore faire les tâches spécifiques à chaque base de données, comme par exemple  (le code ci-dessus doit détecter à quel fichier update.php vous vous rapportez). La mise à jour est simple si vous faite un téléchargement à partir de Git. (Heureusement il n'existe plus de code qui suppose qu'il n'y a qu'un seul wiki sur le disque...)

Images
A moins que vous n'autorisiez pas les téléchargements ou que vous les autorisiez seulement pour un ensemble de wikis, vous aurez besoin de créer des répertoires d'images séparés (avec leurs alias), dans votre configuration 'vhost'. , et dans le vhost de aaa.example.org : . Et la ême chose pour bbb et ccc.

Néanmoins pous pouvez préferrer à la place simplement, où *.example.org/images/ pointe simplement vers le même répertoire unique. Ou on peut utiliser par exemple, *.example.org/$wgDBname/images/.

Ajouter de nouveaux wikis
Pour ajouter un wiki à une de production
 * 1) ajoutez sa configuration à votre serveur web
 * 2) mettez en commentaire temporairement le contrôle de   dans config/index.php puis exécutez-le
 * 3) fusionner le config/LocalSettings.php produit, dans LocalSettings.php
 * 4) ajoutez quelques pages

Supprimer les anciens wikis
Pour supprimer un wiki d'une de production


 * 1) supprimer sa configuration du
 * 2) serveur web
 * 3) LocalSettings.php
 * 4) DROP DATABASE

Méthode Wikimedia
Une autre option est d'utiliser la méthode dont se sert la Fondation Wikimedia. This uses only one single MediaWiki directory to provide the backbone for all sites, with the specific wiki being served dynamically determined at page load depending on the value of being sent from the webserver (in WMF's case, Apache) to PHP. Les grandes étapes sont données ci-dessous. Cette méthode n'est pas pour le premier venu, mais elle donne de bons résultats, comme on peut le voir par le succès qu'en a la Fondation Wikimedia de son utilisation.  Configurez une copie modèle de MediaWiki via l'assistant de configuration en ligne, ou utilisez le script de maintenance install.php. Modifiez la page d'accueil si vous voulez une page d'accueil différente pour chaque wiki que vous avez créé dans votre ferme. Après cela, exportez votre base de données avec mysqldump, phpMyAdmin, etc. Cet export de base de données peut aussi être une structure (par exemple ), auquel cas vous devrez créer le premier utilisateur avec. Enregistrez ceci sur votre serveur dans le répertoire maintenance/ en tant que par exemple : . Maintenant, écrivez quelques scripts rapides pour créer un nouveau wiki. En résumé, vous devrez dupliquer la base de données pour une liste de wikis (la liste peut être basées sur un fichier à plat ou basée sur MySQL/SQLite). D'abord exportez le wiki du modèle, puis importez de nouveau le dump de la base de données du modèle dans la base de données, sous le nom de chaque nouveau wiki. Utilisez un suffixe standard après le nouveau nom de la base de données (par exemple si le wiki est cat.example-farm.org, vous pouvez choisir catwiki pour le nom de la base de données). Dans votre fichier de configuration, ajoutez quelque chhose comme ceci, en adaptant le préfixe de la base de données ainsi que votre domaine si nécessaire :  Configurez votre DNS avec un joker, un enregistrement, et Apache avec un alias de serveur (comme ) et ça devrait fonctionner. 

Le script maintenance/update.php, ainsi que tout autre script de maintenance, utilise un paramètre  qui est exporté en tant que constante. Le fichier LocalSettings.php doit le définir comme le bon $wgDBname. (C'est parce que sur la ligne de commande, il n'y a pas de requête HTTP, et donc "SERVER_NAME" n'est pas défini.) For instance:

Votre LocalSettings.php unique (habituellement formé de quelques lignes incluant un fichier CommonSettings.php qui n'est pas directement accessible à partir du serveur) utilise la variable $wgDBname pour initialiser les paramètres spécifiques du wiki. Voir pour plus de détails.

Vous devrez aussi corriger les répertoires de téléversement à moins que vous voulez que chaque wiki utilise les mêmes fichiers. If you require the upload directories to be different, consider a more sophisticated setup by modifying $wgLocalFileRepo and/or $wgForeignFileRepos. You may also want to consider a remote server solution. The Wikimedia Foundation uses OpenStack Swift. Furthermore, extensions exist to enable your wiki to use AWS S3 and Azure Storage for remote file storage as well. Comme dit précédemment, c'est probablement la méthode la plus difficile à faire, et elle nécessite davantage d'expérience technique, mais elle peut réellement donner de bons et propres résultats. For more details on how the Wikimedia Foundation configures their wikis, visit the Wikitech wiki's explanation of the Wikimedia Foundation's MediaWiki architecture.

Extensions des familles de wikis
Plusieurs extensions MediaWiki essaient de simplifier l’hébergement de plusieurs wikis en utilisant une base unique de code, néanmoins une seule est actuellement remarquable :


 * - beta

Voir aussi

 * Base de données de configuration
 * Groupe MediaWiki des utilisateurs fermiers et courriel
 * — le mécanisme par lequel les comptes utilisateur peuvent avoir un identificateur supplémentaire 'central'.
 * Groupe MediaWiki des utilisateurs fermiers et courriel
 * — le mécanisme par lequel les comptes utilisateur peuvent avoir un identificateur supplémentaire 'central'.
 * — le mécanisme par lequel les comptes utilisateur peuvent avoir un identificateur supplémentaire 'central'.
 * — le mécanisme par lequel les comptes utilisateur peuvent avoir un identificateur supplémentaire 'central'.