phpMyAdmin - les tables de WordPress

Modifier le préfixe des tables WordPress

Toutes les tables du noyau WordPress commencent par un préfixe identique qui est « wp_ » par défaut (exemple : « wp_users »).

Modifier le préfixe est nécessaire lorsqu’on veut installer plusieurs sites WordPress sur une même Base de Données. C’est vivement recommandé pour se protéger de tentatives de piratage qui ciblent les tables standard. C’est utile, par exemple si on a créé un site local qui est une copie d’un site de production.

Choisir le préfixe lors de la création du site

Le préfixe des tables est défini lors de la procédure d’installation d’un nouveau site WordPress :

Durant le paramétrage du site lors de l'installation, il est possible de saisir une chaîne de caractères qui deviendra le préfixe de toutes les tables du noyau WordPress
Choisir son préfixe de tables

Il est fortement conseillé de saisir un autre préfixe que le « wp_ » proposé. En cas d’attaque cherchant à accéder à la Base de Données, le pirate devra chercher le nom exact des tables WordPress.

Haut de page

Modifier le préfixe d’un site existant

Par défaut, le préfixe des tables est « wp_ ».Il est possible de le changer, même après avoir installé WordPress. Voici la procédure à suivre.

Comme toujours, il faut faire une sauvegarde avant de manipuler la Base de Données.

Modifier le préfixe des tables dans MySql

Se rendre dans  phpMyAdmin, sélectionner les tables dont on veut modifier le préfixe et sélectionner  Remplacer le préfixe de table  dans le menu situé en dessous de la liste des tables :

Cocher les cases à gauche du nom des tables
Sélection des tables pour modifier le préfixe

N’hésitez pas à choisir un préfixe suffisamment compliqué (donc difficile à trouver même avec de multiples tentatives) mais en n’utilisant que des chiffres, des lettres non-accentuées, et des caractères soulignés.

Saisir le préfixe existant et le préfixe de remplacement puis cliquer sur le bouton « Exécuter » :

Saisir l'ancien et le nouveau préfixe
Saisir les préfixes

On peut immédiatement constater que les préfixes de table ont été modifiés :

Le préfixe de toutes les tables qui avaient été sélectionnées a été remplacé
Les tables WordPress avec le nouveau préfixe

Mettre à jour le fichier « wp-config.php »

Le préfixe de table déclaré dans le fichier  wp-config.php  doit être mis à jour :

/**
* Préfixe de base de données pour les tables de WordPress.
*
* Vous pouvez installer plusieurs WordPress sur une seule base de données
* si vous leur donnez chacune un préfixe unique. 
* N'utilisez que des chiffres, des lettres non-accentuées, et des caractères soulignés!
*/
$table_prefix  = 'pfxdemo_';
Modification du préfixe de table dans wp-config.php

Vous pouvez vérifier que vous accédez à votre site côté visiteur. En revanche, si vous essayez de vous connecter à l’administration, vous vous heurtez au message suivant :

Message indiquant "Vous n'avez pas les droits suffisants pour accéder à cette page"
Administration inaccessible

Le problème vient du fait que le nom de la table des rôles des utilisateurs apparaît dans la table des options, et que des noms de tables apparaissent dans les clés de la table des « meta » des utilisateurs.

Modifier la table des options

Sélectionner la table des options (« pfxdemo_options dans notre exemple), et rechercher l’option dont le nom contient l’ancien préfixe suivi de « user_roles » (« wp_user_roles » dans notre exemple) :

L'option "wp_user_roles" ne se trouve pas à la première page de la table des options
Modifier l’option « wp_user_roles »

Double-cliquer sur « wp_user_roles » et saisir le nouveau préfixe :

Changement de nom de l'option "wp_user_roles" en "pfxdemo_user_roles"
Modification de l’option « xxxxx_user_roles »

Modifier la table des meta données des utilisateurs

Sélectionner ensuite la table des meta données des utilisateurs (« pfxdemo_usermeta dans notre exemple), et rechercher les clés (« meta key ») commençant par l’ancien préfixe (« wp_ » dans notre exemple) :

Le réfixe de tables se trouve dans les meta_key : wp_capabiities, wp_user_level....
La table des user meta contient nombre de « meta_key » commençant par le préfixe de tables

Pour faciliter le repérage, cliquer en haut de table sur « meta_key »; ceci a pour effet de trier les meta_key par ordre alphabétique :

Cliuer en haut de colonne sur "meta_key"
Cliquer en haut de colonne

Double-cliquer sur chacune des meta_key à modifier, et saisir le nouveau préfixe :

Modification du préfixe des tables définies comme meta key
Table des user meta modifiée

À partir de ce moment, WordPress fonctionne avec un nouveau préfixe pour les tables de la Base de Données

Haut de page

Vérifier l’impact sur les extensions

Il se peut qu’il y ait quelques soucis avec des extensions. MySQL peut nous aider à repérer les référence à l’ancien préfixe.

Une extension bien conçue utilise le préfixe du noyau WordPress pour ses propres tables. Il le récupère dans la variable « $table_prefix » initialisée dans le fichier « wp-config.php ».
Néanmoins, si vous constatez des problèmes avec une ou plusieurs extensions, une analyse plus approfondie des tables spécifiques à ce(s) extension(s) s’impose.

Dans phpMyAdmin, cliquer sur le nom de la Base de Données (dans notre exemple, la base « copie_prod » ) :

  1. Cliquer sur l’index Index Rechercher de MySQL,
  2. Saisir la valeur à rechercher,
  3. Sélectionner les tables dans lesquelles rechercher la valeur (les touches « SHFT » et « CTRL » permettent des sélections multiples),
  4. cliquer sur le boutonBouton MySQL "Exécuter"

  1. MySQL affiche le nombre de correspondances trouvées dans chaque table précédemment sélectionnée,
  2. cliquer sur le lien « Afficher » pour visualiser les correspondances pour une table,
  3. vérifier les chaînes repérées; dans notre exemple, celles-ci ne correspondent pas à des préfixes de tables, donc il ne faut pas les modifier.
Affichage en haut du nombre de correspondances par table, dessous de la requête SQL et en bas des champs dans lesquels une correspondance a été trouvée.
Affichage des champs contenant la valeur « wp_ »
Haut de page

 

Une réflexion sur « Modifier le préfixe des tables WordPress »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.