Administration d’un réseau multisite

Après avoir créé un réseau multisite, il y a des choses supplémentaires que vous pouvez avoir besoin de savoir sur l’administration d’un réseau multisite en raison de sa complexité. Même si vous êtes familier de WordPress, l’emplacement et le comportement de l’administration d’un réseau multisite peuvent être déroutants.

Comptes et permissions

Par défaut, tous les comptes ajoutés au réseau auront un rôle d’abonné sur tous les sites. Pour attribuer un rôle différent aux comptes individuels, vous devrez utiliser une extension.

Dans un réseau multisite les permissions du rôle administrateur sont réduites. Par défaut, les administrateurs/administratrices de sites ne peuvent pas installer de nouveaux thèmes ou d’extensions et ne peuvent pas ajouter ou modifier des comptes sur leur site. Seul l’administrateur/administratrice du réseau (Super Admin) a la permission d’effectuer ces tâches.
Vous pouvez autoriser les administrateurs/administratrices des sites du réseau à ajouter et modifier des comptes en activant l’option « Ajouter de nouveaux comptes » dans la page des Réglages du réseau.

Haut ↑

Permaliens dans une installation en sous-dossiers

Pour que les permaliens continuent de fonctionner, le site principal du réseau (par exemple le premier créé) comportera un préfixe blog supplémentaire dans ses URL, ce qui donnera cette structure : domain.com/blog/YYYY/MM/POSTNAME.

C’est le comportement par défaut pour éviter des conflits d’URL dans les installations en sous-dossiers. Actuellement il n’existe pas de moyen facile de le changer, car cela empêcherait WordPress de détecter automatiquement les conflits entre le site principal et les sous-sites.
Ce problème sera résolu dans une future version de WordPress.

Le préfixe blog n’est pas utilisé pour les pages statiques qui seront accessibles directement depuis l’adresse du site, par exemple domain.com/PAGENAME.
Si, dans le premier site du réseau, vous essayez de créer une page dont le nom est le même qu’un site existant, le permalien de la page comportera automatiquement un suffixe, par exemple domain.com/PAGENAME-2.
Si vous créez un nouveau site dont le chemin est le même qu’une page existante du réseau, alors cette page ne sera plus accessible. Pour éviter cela vous pouvez ajouter le nom de vos pages à la liste des noms bannis pour les nouveaux sites dans les Réglages du réseau.

Haut ↑

Dossiers des fichiers téléversés

Les fichiers téléversés depuis le premier site créé sur le réseau sont placés dans le dossier par défaut (/wp-content/uploads/), tandis que les fichiers téléversés depuis les autres sites sont placés dans des dossiers séparés /wp-content/uploads/sites/SITE_ID, où SITE_ID correspond à l’identifiant du site désigné par la base de données. Les fichiers téléversés seront accessibles via cette URL.

Cette architecture de dossiers dans le multisite date de la version 3.5 de WordPress, en effet dans les versions 3.0 à 3.4.2, les médias des sites étaient placés dans le dossier /wp-content/blogs.dir/ et accessibles via les URL http://example.com/files/ et http://example.com/sitename/files. Si votre installation multisite utilise une version antérieure à la 3.5, il est normal que vos médias s’affichent sur l’URL /files/.

Ces emplacements de fichiers ne peuvent pas être changés par les administrateurs/administratrices des sites mais uniquement par le ou la Super Admin du réseau sur la page de réglages de chaque site, peu importe la version de WordPress.
Il n’est pas recommandé de les modifier sans savoir comment fonctionnent les fichiers ms-files.php et .htaccess, car cela peu provoquer des dysfonctionnements.
Si les URL /files/ ne fonctionnent pas, cela peut venir d’une mauvaise configuration des fichiers .htaccess et/ou httpd.conf sur votre serveur.

Haut ↑

Extensions

Les extensions ont maintenant une flexibilité supplémentaire en fonction de leur implémentation sur le réseau. Toutes les extensions sont installées via la page des extensions du tableau de bord du réseau et peuvent être activées soit site par site, soit sur tout le réseau :

  • Extensions spécifiques par site : ces extensions sont activées depuis la page des extensions d’un site spécifique. Certaines extensions fonctionnent mieux quand elles sont activées site par site afin de sauvegarder leurs données et réglages dans les tables de la base données du site au lieu de le faire dans les tables du réseau.
    Ces extensions sont placées dans le répertoire des extensions.
  • Extensions du réseau : ces extensions sont activées « sur le réseau » depuis la page des extensions du tableau de bord du réseau. Une fois activée sur le réseau, une extension devient active sur chaque site et ne peut pas être désactivée site par site.
    Certaines extensions fonctionnent sur une installation multisite uniquement quand elles sont activées sur le réseau.
    Ces extensions sont également situées dans le répertoire des extensions.
  • Extensions indispensables : les extensions qui doivent être utilisées sur tout le réseau peuvent également être installées dans le répertoire mu‑plugins (fichiers uniques ou fichiers pour charger des sous‑dossiers). Les extensions indispensables ne peuvent pas être activées ou désactivées : si elles existent dans le dossier mu‑plugins, elles sont chargées et actives. Ces extensions ne sont pas visibles dans la page des extensions des sous-sites du réseau.

Veuillez noter que toutes les extensions du répertoire ne fonctionneront pas forcément dans un environnement multisite. Consultez la page de l’extension ou contactez son développeur pour savoir si elle fonctionne sur un réseau multisite.

Si vous souhaitez que les administrateurs/administratrices des sites puissent activer et désactiver des extensions sur leur site, vous pouvez activer cette fonctionnalité depuis la page des Réglages du réseau, section « Réglages du menu » en cochant la case « Extensions » de l’option « Activer les menus d’administration ». Les administrateurs du réseau auront toujours accès aux extensions de chaque site et les administrateurs/administratrices des sites pourront uniquement activer et désactiver les extensions qui ne sont pas activées sur le réseau.

Il existe des extensions qui vous aideront à activer et désactiver des extensions en masse pour chaque site.

Haut ↑

Thèmes

Tous les thèmes sont installés pour tout le réseau. Si vous modifiez le code d’un thème, cela affectera tous les sites qui utilisent ce thème. Vous pouvez installer l’extension WP Add Custom CSS pour permette à chaque site d’ajouter son propre CSS sans affecter les autres sites. Par ailleurs, chaque site peut utiliser l’outil de Personnalisation, les réglages seront sauvegardés dans les tables respectives des sites, dans la base données.

Activer un thème sur le réseau ne veut pas dire qu’il sera le thème actif pour chaque site, mais qu’il sera possible de l’activer sur chaque site. Pour être activable dans le tableau de bord d’un site, un thème doit être soit activé sur le réseau, soit autorisé dans les réglages du site (Réglages du réseau, menu Tous les sites, Modifier un site, onglet Thèmes).
Une fois qu’un thème a été activé sur un site, il peut être désactivé du réseau sans affecter les sites où il est utilisé.

Par défaut, WordPress assigne le thème « Twenty… » le plus récent pour tous les nouveaux sites d’un réseau. Cela peut être personnalisé en définissant une constante dans votre fichier wp-config.php : define('WP_DEFAULT_THEME', 'classic');classic correspond au nom du dossier de votre thème.

Haut ↑

Catégories et étiquettes

Le partage des catégories et des étiquettes entre les sites d’un réseau n’est pas possible dans WordPress 3.0.
Vous pouvez utiliser une extension pour incorporer des termes globaux sur le portail/la page d’accueil du site ou sur des pages spécifiques dans le réseau pour améliorer la navigation en fonction du contenu micro‑catégorisé.

Haut ↑

Partage de contenu entre les sites

Les sites d’un réseau sont des sites séparés qui, nativement, ne partagent pas leurs contenus entre eux. Il existe plusieurs extensions qui pourront vous aider à activer cette fonctionnalité, comme Network Posts Extended.

Haut ↑

Changer de type de réseau

Il est possible de basculer entre une installation basée sur un domaine (sous-domaines) et basée sur un chemin (sous-dossiers).
Si, au moment de créer un réseau, votre WordPress est installé depuis plus d’un mois, vous serez invité à utiliser des sites en sous-domaines. C’est pour éviter les conflits potentiels entre vos pages (par exemple example.com/pagename) et un site (par exemple example.com/sitename) dans le cadre d’une installation en sous-dossiers.
Si vous êtes sûr que vous n’aurez pas ce problème, alors vous pouvez changer de type d’installation après la création du réseau.

Dans votre fichier wp-config.php, vous changerez la valeur de la constante SUBDOMAIN_INSTALL.
Pour une installation en domaine (sous-domaines) :

define( 'SUBDOMAIN_INSTALL', true );

Pour une installation basée sur un chemin (sous-dossiers) :

define( 'SUBDOMAIN_INSTALL', false );

Vous devrez également modifier votre fichier .htaccess.
Vous trouverez les nouvelles règles dans le tableau de bord du réseau, menu Réglages, page Création du réseau.

À noter que, comme indiqué dans les pré-requis, vous ne pourrez pas passer d’une installation en sous-dossiers vers une installation en sous-domaines si vous utilisez une adresse IP (ex. 127.0.0.1) ou localhost comme URL. Cela peut causer des boucles de redirections infinies à la connexion (reauth=1) en raison de la gestion des cookies.

Haut ↑

Apache Virtual Hosts et le Mod Rewrite

Pour permettre au mod_rewrite de fonctionner dans un hôte Apache virtuel (Apache Virtual Host), vous devrez définir certaines options sur DocumentRoot.

<VirtualHost *:80>
  DocumentRoot /var/www/vhosts/wordpress
  <Directory /var/www/vhosts/wordpress>
    AllowOverride Fileinfo Options
  </Directory>

Dans certains cas, vous devrez ajouter All à AllowOverride pour que toutes les règles .htaccess soient prises en compte.

Haut ↑

.htaccess et le Mod Rewrite

Contrairement aux installation WordPress classiques qui, en utilisant des permaliens non personnalisés, peuvent fonctionner sans le Mod Rewrite, le multisite nécessite que ce dernier soit activé pour pour créer les URL des sites du réseau. Cela implique l’utilisation d’un fichier .htaccess, dont le contenu sera différent selon si vous utilisez des sous-dossiers ou des sous-domaines.
Les exemples ci-dessous montrent les règles standards pour une installation en sous-dossiers et en sous-domaines quand WordPress est installé à la racine de votre dossier web. Si vous avez installé WordPress dans son propre dossier, vous devrez changer la valeur de RewriteBase en fonction.

Ces exemples fonctionneront dans la plupart des installations, mais pas toutes.

Exemple pour une installation en sous-dossiers

Pour WordPress 3.0 à 3.4+

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress

Pour WordPress 3.5 et plus. Utilisez cet exemple seulement si vous avez installé un multisite sur la version 3.5. Si vous avez mis à jour de la version 3.4 vers la 3.5, utilisez l’exemple précédent.

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress

Exemple pour une installation en sous-domaines

Pour WordPress 3.0 à 3.4+

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]

# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule . index.php [L]
# END WordPress

Pour WordPress 3.5 et plus

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ wp/$1 [L]
RewriteRule . index.php [L]
# END WordPress

Problèmes avec les anciennes installations WPMU

Si vous avez installé WordPress MU dans un sous dossier ou un sous répertoire (pas dans le dossier racine de votre serveur) et que les miniatures de vos médias ne s’affichent pas, vous pourriez avoir besoin d’ajouter ces règles dans votre fichier .htaccess, après la règle normale pour les fichiers :

RewriteRule ^([_0-9a-zA-Z-]+/)?siteN/files/(.+) wp-content/blogs.dir/N/files/$2 [L]

Haut ↑

Emplacement du lien d’administration du réseau

L’emplacement du lien d’administration du réseau a été déplacé à chaque version majeure de WordPress car il s’agit toujours d’un travail en cours.
Selon la version de WordPress que vous utilisez, ce lien se trouve aux emplacements suivants :

  • 3.0 – Un menu appelé Super Admin ;
  • 3.1 – Dans la barre d’administration, sous le texte « Bienvenue, Votre nom » ;
  • 3.2 – Dans la barre d’administration, dans un sous-menu, sous le texte « Bienvenue, Votre nom » ;
  • 3.3 et supérieures – Dans la barre d’administration, dans un sous-menu, sous le texte « Mes sites » ;

Haut ↑

Mappage de domaine

Avant WordPress 4.5, le mappage de domaine (domain mapping) nécessite l’utilisation d’une extension.
Depuis WordPress 4.5, le mappage de domaine est intégré nativement dans le multisite.
Apprenez comment utiliser cette fonctionnalité en lisant Mappage de domaines dans un multisite.

Haut ↑

Déplacer un multisite

Le déplacement d’un multisite est plus complexe que pour une installation classique, veuillez lire Déplacer un WordPress multisite.

Haut ↑

Importer des sites dans un réseau

Si vous voulez importer des sites simples dans un réseau multisite, lisez l’article Importer plusieurs sites dans un WordPress multisite.

Traduit par Marie Comet
Relu par Jb Audras & Jenny Dupuy
Dernière mise à jour le 04 mai 2021

Contribuer à la documentation en français de WordPress

Journal des modifications

04 mai 2021Jenny Dupuy – Suppression de l’encodage des caractères accentués ou spéciaux dans les liens concernés
29/12/2020 – Patrice Pichon
Mise à jour d’après la page EN du 16/12/2020
Correction de « capacité » en « permissions » cf le glossaire
Correction des lignes de code mal affichées (bloc code en remplacement du bloc code « text plain »)
Ajout du lien vers permalien
Ajout des sauts de ligne dans les codes, cf la page anglaise
Correction du lien « déplacer un multisite » (par anticipation)
Correction du lien « importer plus sites dans un WP multisite » vers la page éponyme

29/12/2020Jenny Dupuy – Mise en conformité des expressions concernant les utilisateurs