Ce petit tutoriel explique comment installer WordPress en version multi-site sur Windows server 2012 avec IIS 8.
Création du réseau de sites
Désactiver les extensions
Depuis la console wp-admin, désactiver tous les plugins installés.
Autoriser le multi-site
Ouvrir le fichier C:\inetpub\< DossierInstallationWordPress >\wp-config.php
Ajoutez les lignes suivantes au-dessus de la première ligne commençant par ‘require‘ ou ‘include‘ :
/* Multisite */ define('WP_ALLOW_MULTISITE', true);
Créer le réseau de sites
Dans la console wp-admin le menu Réglages > Réglages du réseau est apparu.
Créer le nouveau réseau en sélectionnant l’une des 2 options suivantes si disponible:
Sous-domaines (réseau basé sur le domaine, les sites WordPress utiliseront des sous-domaines).
Sous-répertoires (réseau basé sur le chemin, les sites WordPress utiliseront des sous-répertoires).
Configuration Multi-site
wp-config.php
Ouvrir le fichier C:\inetpub\< DossierInstallationWordPress >\wp-config.php.
Ajoutez les lignes suivantes au-dessous de la ligne ajoutée lors de la première étape:
define('SUBDOMAIN_INSTALL', false); define('DOMAIN_CURRENT_SITE', ''. $_SERVER['HTTP_HOST'].''); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);
web.config
Ouvrir le fichier C:\inetpub\< DossierInstallationWordPress >\web.config.
Insérer les lignes suivantes entre les balises <system.webServer> et </system.webServer>:
<rewrite> <rules> <rule name="WordPress Rule 1" stopProcessing="true"> <match url="^index\.php$" ignoreCase="false" /> <action type="None" /> </rule> <rule name="WordPress Rule 2" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" /> <action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" /> </rule> <rule name="WordPress Rule 3" stopProcessing="true"> <match url="^" ignoreCase="false" /> <conditions logicalGrouping="MatchAny"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" /> </conditions> <action type="None" /> </rule> <rule name="WordPress Rule 4" stopProcessing="true"> <match url="^" ignoreCase="false" /> <conditions logicalGrouping="MatchAny"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" /> <add input="{URL}" pattern="([a-zA-Z0-9\./_-]+)\.axd" /> </conditions> <action type="None" /> </rule> <rule name="WordPress Rule 5" stopProcessing="true"> <match url="^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*)" ignoreCase="false" /> <action type="Rewrite" url="{R:1}" /> </rule> <rule name="WordPress Rule 6" stopProcessing="true"> <match url="." ignoreCase="false" /> <action type="Rewrite" url="index.php" /> </rule> </rules> </rewrite> <httpRedirect enabled="false" destination="http://www.yourdomain.com" />
URL Rewrite
Après avoir modifié le fichier web.config, si l’erreur « 500.19 – Internal Server Error » apparait lorsque l’on tente d’accéder à /wp-admin, c’est qu’il faut probablement installer le module url-rewrite depuis l’adresse http://www.iis.net/downloads/microsoft/url-rewrite.
Gestion des bases de données
Comportement par défaut
Par défaut, WordPress utilise une seule base de données en préfixant différemment les tables de chaque site créé:
- 1er site: wp_
- 2ème site: wp_1_
- 3ème site: wp_2_
Gérer plusieurs bases de données
Vérification des tables
Vérifier pour chaque site les informations suivantes:
- wp_blogs / domain
- wp_options / siteurl
- wp_options / home
- wp_sitemeta / siteurl
Post-installation
- Réactiver les plugins.
Documentation
Installation
https://codex.wordpress.org/fr:Créer_un_réseau
https://codex.wordpress.org/Multisite_Network_Administration
Trouble shooting
http://chrisbitting.com/2013/03/26/wordpress-multisite-windows-iis-login-redirect-loop-issue/
Bases de données
https://deliciousbrains.com/wordpress-multisite-database-tour/