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 : La suite de cette page développe (ou le fera [update required) les différentes parties évoquées ci-dessus.
 * 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 $_SERVER['SERVER_NAME'] ou $_SERVER['REQUEST_URI'] (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.

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 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 plus d’un wiki en utilisant différentes bases de données et 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.


 * 1) Créez un répertoire de base pour contenir tous vos fichiers MediaWiki par exemple.

 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) Installez MediaWiki et les outils supplémentaires comme d’habitude, dans un sous-répertoire indiquant la version (par exemple  ).
 * 2) Liez le dossier indiquant la version, à un répertoire de code. Par exemple,
 * 3) Créez un répertoire sites pour contenir nos images et paramètres :
 * 4) Configurer le wiki comme d’habitude à partir du répertoire /code.
 * 5) 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.
 * 6) 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.
 * 7) Placez le fichier LocalSettings.php de Drupal dans votre répertoire principal :
 * 8) Modifiez le fichier LocalSettings.php de chaque sous-site pour pointer vers les bons endroits :
 * 9) D'abord commentez le code contenant   (lignes 16-20 en 1.15.3) car cela défini le répertoire de "code" par.
 * 10) Insérez ensuite ces deux lignes pour vous assurer que les fichiers d'images 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.
 * 11) Faites les autres modifications comme nécessaire.
 * 12) Préparez votre installation Apache 2. Site d'exemple : wiki.mysite.com
 * 13) Créez un lien vers le répertoire code si nécessaire,   par exemple
 * 14) 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.Note that  in the companion Drupal code is undefined when running maintenance scripts from the command line, so this solution does not permit the use of maintenance scripts without some modification.

Méthode modifiée style Drupal pour Ubuntu
A simplified method for multiple wikis and multiple (or nested) subwikis on Ubuntu/Kubuntu that is loosely based on the above method can be found at:
 * Ubuntuguide.org MediaWiki tips

Wikis multiples se partageant des ressources communes
You want to have some wikis in different languages, sharing the same media-files in another, single wiki.

Par exemple :


 * en.yourwiki.org -
 * fr.yourwiki.org -
 * de.yourwiki.org -
 * pool.yourwiki.org - media-files for all of these wikis (like Commons).
 * As there is already an Interwikilink named  for Wikimedia Commons, we name our media-files-wiki "pool".
 * Think before being creative; if you call your media-files-wiki something like "media" (e.g. media.example.com), it might collide with internal namespaces and nomenclature for embedded media files ( [[media:file.ext]] ).

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

Cette solution duplique le code source. To reduce this duplication and improve cache performance, you may wish to replace the  (≤ MW 1.20.x), ,  ,  ,  ,  ,   (≤ MW 1.17.x),  ,  ,  ,   and   (≥ MW 1.22.x ) directories for non-pool installations with symbolic links to the pool's directories:

Par exemple, entrez  puis entrez''

Pour faire la même chose dans Windows, utilisez

Configurations du wiki
$wgJobRunRate = 0;

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

Enter as many records into table Interwiki than you have different wiki (so one record for German, one for English, one for media for example).

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

Note to page Special:Interwiki: (you will see a long table) Add in the German wiki the prefix 'en' and the url http://en.yourwiki.org/index.php/$1 and set the checkbox 'Als lokales Wiki definiert'. Do it in the English wiki vice versa with checkbox 'Forward'. And in both wikis enter a second prefix 'pool' and http://pool.yourwiki.org/index.php/$1 and check the checkbox 'Forward'.

Téléchargements
Soyez sûr que le répertoire "images" du poolwiki est autorisé à l'écriture.

Il est pratique de changer le lien "Copier sur le serveur" des wikis pour pointer vers le wiki pool. Ouvrez le fichier LocalSettings.php de chaque wiki et ajoutez :

In 1.17, you'll also have to set $wgUploadMissingFileUrl to be redirected to the pool-wiki on red links.

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

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

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

Changez le texte avec la forme : Ce fichier est enregistré sur notre poolwiki. Pour des informations sur l'image et la description, visitez sa

description là-bas. (And note the ':' at the beginning of the line, which stops 'pool' from being included in the interwiki list at the left of the page.)

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

Paramètres partagés
If you have multiple wikis, you'll probably want to share similar settings across them all. Voici comment faire cela. We recommend that you separate your Extension settings into a different file than your other settings, as detailed below. They can be all put into one large file, but it's not as flexible depending upon your specific needs.

Here is an example directory structure if you do all of the following:

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

Configuration des extensions

 * Etape 1
 * Create a file called ExtensionSettings.php with the following contents, and place it in a location similar to the example above.


 * Etape 2
 * Edit the LocalSettings.php file of each wiki that you want to use the shared settings, and add the following.
 * 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. For example, maybe you want to be able to easily put all the wikis into read-only mode at the same time. You can also store the username/password for the database(s), if they are all the same. Additionally, you could control user permissions across your entire wiki from this one file.

Note: If you use a Images/Media commons or pool, we recommend that you do not put these settings in the WikiFamilySettings.php file. That information only applies to every wiki in your wiki family other than your repository. Il est recommandé de le placer dans un fichier séparé.

Tables partagées de la base de données
See Manual:Shared database for instructions on setting up shared database tables.

Solution minimaliste ultime
La « solution minimaliste ultime » consiste à utiliser les liens symboliques (symlinks);

$ 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

Let's see a real example of. In real life we must deal with the slight differences in the names and databases of the sites we manage.

Note we still individually do database related tasks, e.g.,  (The above code should detect which wiki's update.php you are referring to.) La mise à jour est simple si vous faite un téléchargement à partir de Git. (Hopefully there is no more code that assumes there is only one wiki on the disk...)

Images
Unless you do not allow uploads or allow them only for your pool wiki, you will need to create separate image directories and alias them in your vhost configuration: , and in aaa.example.org's vhost: . Same for bbb and ccc.

However you may instead just prefer , where *.example.org/images/ just point to the same single directory. 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) merge the config/LocalSettings.php produced into 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. Les grandes étapes sont données ci-dessous. This method isn't for the faint of heart, but it has fairly good results, as can be seen by the success the Wikimedia Foundation has had by using this :-)  Configurez une copie du modèle de MediaWiki via l'assistant de configuration en ligne. 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. In summary, you'll need to duplicate the database for a list of wikis (the list can be flat-file based or MySQL/SQLite based). First export the template wiki, then import the template database dump back into the database under the name of each new wiki. Use a standard suffix after the new database name (i.e. if the wiki is cat.example-farm.org, then you might choose catwiki as the database name).</li> In your configuration file, add something like this, fixing the database prefix and your domain as necessary: </li> Configure your DNS with a wildcard A record, and apache with a server alias (like ) and you should be in business.</li> </ol>

The script maintenance/update.php takes a  parameter that is exported as   constant. Your LocalSettings.php file needs to set it as the correct $wgDBname. (On the command-line there is no HTTP request, and no "SERVER_NAME":

Your unique LocalSettings.php (which usually consists in a few lines including a CommonSettings.php not directly accessible from the server) uses the $wgDBname variable to initialise the wiki-specific settings. See for how.

Vous devrez aussi corriger les répertoires de téléversement à moins que vous voulez que chaque wiki utilise les mêmes fichiers. As said above, this is probably one of the hardest methods to do, and it requires more technical experience, but it can give really good, clean results.

Extensions autour des familles de wiki
Plusieurs extensions pour MediaWiki essaient de simplifier l’hébergement de plusieurs wikis en utilisant une base unique base commune :


 * - beta, updated 2017
 * - beta, updated 2014
 * - unmaintained
 * - unmaintained

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