Déboguer un réseau WordPress

Si vous êtes sur cette page, il y a de fortes chances que vous ayez rencontré une erreur sur votre réseau WordPress. Cela peut arriver lorsque WordPress ne parvient pas à trouver une ou plusieurs tables du réseau dans la base de données.

Sur certains serveurs mutualisés, l’hébergeur a désactivé l’exécution de certaines fonctionnalités. Il est préférable de vérifier avec votre hébergeur avant de créer un réseau s’il respecte les exigences techniques d’une installation multisite.

Vous venez juste d’installer le réseau

Vérifiez dans votre fichier wp-config.php si :

  • les informations de la base de données sont correctes ;
  • la constante SUBDOMAIN_INSTALL est définie correctement ;
  • la constate MULTISITE est définie ;
  • la variable $table_prefix est définie correctement.

Il ne doit rien y avoir après ces lignes :

/* That's all, stop editing! Happy blogging. */

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

Déplacez tous le code situé après :

require_once(ABSPATH . 'wp-settings.php');

au dessus de la ligne

/* That's all, stop editing! Happy blogging. */

Le mod_rewrite ne fonctionne pas

Le site principal fonctionne mais vous avez une erreur 404 quand vous essayez d’accéder à un site du réseau en sous-domaine. Si vous utilisez LAMP sous Ubuntu 10.04, le service apache2 nécessite d’être édité :

sudo a2enmod rewrite
sudo nano /etc/apache2/sites-avail/default

pour changer en deux endroits AllowOverride None pour AllowOverride all.
Redémarrez ensuite le service apache2 :

/etc/init.d/apache2 restart

À noter que dans les versions les plus récentes d’Ubuntu la syntaxe suivante est préférée pour redémarrer un service comme Apache :

service apache2 restart

Dans certains cas vous pourriez avoir besoin d’effectuer la commande en sudo :

sudo service apache2 restart

Vérifier la base de données

En assumant que les points précédents sont corrects, vérifiez que toutes les tables supplémentaires du réseau (en anglais) ont été créées :

  • wp_blogs ;
  • wp_blog_versions ;
  • wp_registration_log ;
  • wp_signups ;
  • wp_site ;
  • wp_sitemeta.

Si ces tables sont présentes ou que vous les avez ajoutées manuellement mais que wp_site et/ou wp_blogs sont vides, vous devrez exécuter des requêtes SQL afin d’insérer les lignes pour le site principal. Veillez à ajuster le préfixe des tables, le nom de domaine, les dates, l’identifiant d’utilisateur des requêtes ci-dessous, en fonction de votre installation.

INSERT INTO wp_site VALUES(1,'domain.com','/'); 
# changez domain.com pour le nom de domaine de votre site et / pour le chemin
   
INSERT INTO wp_blogs VALUES(1, 1, 'domain.com', '/', '2015-01-01', '2015-01-01', 1, 0, 0, 0, 0, 0);
# changez domain.com et / pour le nom de domaine et le chemin de votre site. changez les dates si vous le souhaitez
   
INSERT INTO wp_sitemeta VALUES(, 1, 'site_admins', 'a:1:{i:1;s:5:"admin";}');
# Défini l'administrateur comme Super Admin. Changez "admin" pour votre identifiant d'utilisateur.
# Changez "s:5" pour "s:#" où # est le nombre de caractères de votre identifiant d'utilisateur

Si la création de nouveaux sites cesse de fonctionner

Vérifiez votre base de données comme ci-dessus.

Vérifiez à nouveau que la localisation et/ou les accès à la base de données n’ont pas changé, et si oui, que vous avez mis à jour votre fichier wp-config.php.

Autres problèmes moins connus

Vérifiez que l’utilisateur de la base de données a toutes les permissions sur la base de données.

Dans certains cas rares de mises à jour depuis WordPressMU 3.0 et plus ancien, certains utilisateurs ont rencontré des problèmes à la création de nouveaux sites. Cela s’est avéré être un problème d’interclassement (collation) de la base de données.

Vérifiez que les règles du fichier .htaccess ne provoquent pas d’erreurs dans les fichiers témoins d’Apache, par exemples :

Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden:

Cela entraînera une installation réseau semblant échouer et pourra afficher des erreurs WordPress comme :

One or more database tables are unavailable. The database may need to be repaired.

Publications similaires

Liens externes

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

Journal des modifications

25 avril 2021Jenny Dupuy – Modification de la cible du lien réseau WordPress.