Module 1 · 1.3
Français
Fichiers, wp-config et la base de données
Module 1: Comment fonctionne WordPress · Temps de lecture : 9 minutes
Objectif pédagogique : Après cette leçon, vous saurez reconnaître les dossiers de WordPress, les réglages de wp-config.php et les principales tables de la base de données, et vous saurez où trouver quoi.
Notions clés : wp-admin, wp-includes, wp-content (themes, plugins, uploads, mu-plugins), wp-config.php (DB_*, table_prefix, clés et sels, WP_DEBUG), .htaccess, wp_options (siteurl, home), wp_posts, wp_users
Deux moitiés : fichiers et base de données
Un site WordPress se compose toujours de deux parties indissociables :
- Des fichiers dans le répertoire web de votre domaine (chez DirectAdmin
domains/example.com/public_html) : le code de WordPress, vos thèmes, vos extensions et tout ce que vous téléversez. - Une base de données : tous vos textes, pages, menus, réglages, comptes et commentaires.
Cette distinction est importante pour les sauvegardes et les migrations. Une sauvegarde comportant uniquement les fichiers ne contient pas vos textes. Une sauvegarde comportant uniquement la base de données ne contient pas vos photos. Vous avez besoin des deux (leçon 8.1).
Les dossiers
Ouvrez votre répertoire web dans le Gestionnaire de fichiers ou avec un programme FTP, vous verrez approximativement ceci :
public_html/
├── wp-admin/ le tableau de bord (core)
├── wp-includes/ le reste de WordPress (core)
├── wp-content/ tout ce qui vous appartient
│ ├── themes/ les thèmes
│ ├── plugins/ les extensions
│ ├── uploads/ vos médias, par année et par mois : uploads/2026/11/
│ ├── mu-plugins/ extensions « must use » (si elles existent)
│ ├── languages/ les traductions
│ └── upgrade/ dossier temporaire pour les mises à jour
├── .htaccess les règles pour le serveur web
├── index.php le point de départ de chaque requête de page
├── wp-config.php les réglages de cette installation
├── wp-login.php la page de connexion
├── xmlrpc.php une ancienne interface pour les applications (leçon 7.3)
└── ... autres fichiers wp-*.php du coreLa règle de base : wp-admin, wp-includes et les fichiers wp-*.php isolés appartiennent à WordPress. Ils sont remplacés à chaque mise à jour. N'y placez jamais rien vous-même et ne les modifiez pas.
wp-content vous appartient. Une mise à jour de WordPress laisse ce dossier intact (à l'exception des thèmes et extensions par défaut fournis avec). C'est là que se trouvent vos thèmes, vos extensions et vos fichiers téléversés. Quelques points à connaître :
- uploads est le dossier qui grossit le plus. Chaque photo que vous téléversez est enregistrée par WordPress en plusieurs formats (leçon 4.4). Un site avec des années d'actualités peut contenir plusieurs gigaoctets de fichiers téléversés.
- mu-plugins (must use) sont des extensions toujours actives que vous ne pouvez pas désactiver depuis le tableau de bord. Certains hébergeurs et extensions les utilisent. Les pirates aussi aiment y dissimuler du code (leçon 7.5). Si vous ne reconnaissez pas un fichier qui s'y trouve, cherchez d'où il provient.
- Une extension supprimée disparaît du dossier
plugins. Une extension désactivée reste en place, avec tout son code (leçon 5.4).
wp-config.php : les réglages
wp-config.php est le premier fichier que WordPress charge. Il contient les informations permettant à WordPress d'accéder à la base de données, ainsi que quelques réglages pour l'ensemble de l'installation. Une version abrégée :
define( 'DB_NAME', 'utilisateur_wp1' );
define( 'DB_USER', 'utilisateur_wp1' );
define( 'DB_PASSWORD', 'un-mot-de-passe-long-et-aleatoire' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'AUTH_KEY', 'texte long et aléatoire' );
define( 'SECURE_AUTH_KEY', 'texte long et aléatoire' );
define( 'LOGGED_IN_KEY', 'texte long et aléatoire' );
define( 'NONCE_KEY', 'texte long et aléatoire' );
define( 'AUTH_SALT', 'texte long et aléatoire' );
define( 'SECURE_AUTH_SALT', 'texte long et aléatoire' );
define( 'LOGGED_IN_SALT', 'texte long et aléatoire' );
define( 'NONCE_SALT', 'texte long et aléatoire' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );
/* C'est tout, ne modifiez pas au-delà de cette ligne ! */
require_once ABSPATH . 'wp-settings.php';Ce que cela signifie :
- DB_NAME, DB_USER, DB_PASSWORD, DB_HOST : avec quelle base de données, quel utilisateur et quel mot de passe WordPress se connecte, et sur quel serveur. Si l'une de ces valeurs est incorrecte, vous voyez apparaître « Error establishing a database connection ». Cela se produit souvent après une migration ou après la modification d'un mot de passe de base de données.
- Les clés et sels (les huit lignes avec KEY et SALT) : des textes aléatoires avec lesquels WordPress signe les cookies de connexion. Quiconque les connaît pourrait en théorie fabriquer un cookie de connexion valide. Si vous les remplacez, tout le monde est déconnecté. C'est exactement ce que vous faites après un piratage (leçon 7.5). De nouvelles valeurs sont disponibles sur
https://api.wordpress.org/secret-key/1.1/salt/. - $table_prefix : le préfixe de tous les noms de tables, généralement
wp_. Cela permet à plusieurs installations de partager une même base de données. Choisir un autre préfixe n'est pas une véritable mesure de sécurité, mais cela ne pose pas non plus de problème. - WP_DEBUG : active les messages d'erreur. Sur un site en ligne, ce réglage reste désactivé (
false). Pour savoir comment consulter les erreurs en toute sécurité sans les afficher aux visiteurs, consultez la leçon 5.4. - Les réglages que vous ajoutez vous-même (par exemple
DISALLOW_FILE_EDITà la leçon 7.4 ouDISABLE_WP_CRONà la leçon 6.3) doivent se trouver au-dessus de la ligne « ne modifiez pas au-delà de cette ligne ».
wp-config.php contient votre mot de passe de base de données. Ne partagez jamais ce fichier, n'en placez pas de copie dans le répertoire web (comme wp-config.php.bak ou wp-config.old : n'importe qui peut les télécharger, car le serveur web ne les exécute pas en tant que PHP) et attribuez-lui des droits de fichier stricts (leçon 7.4).
.htaccess
Chez LiteSpeed et Apache, le répertoire web contient un fichier .htaccess avec des règles pour le serveur web. Son nom commence par un point, c'est pourquoi il est masqué dans de nombreux programmes. WordPress y insère ce bloc pour des adresses soignées (permaliens) :
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressAutrement dit : « si ce n'est pas un fichier existant (!-f) ni un dossier existant (!-d), transmettez-le à index.php ». C'est l'étape 2 de la leçon 1.2. Les extensions (mise en cache, sécurité) ajoutent souvent leurs propres blocs. Placez vos propres règles en dehors des blocs de WordPress et des extensions, car ces blocs sont parfois réécrits. Chez nginx, .htaccess n'existe pas ; c'est l'hébergeur qui gère cela dans la configuration du serveur.
La base de données : quelle table pour quoi
Avec phpMyAdmin (chez DirectAdmin sous Gestion des bases de données), vous pouvez consulter la base de données. Une installation ordinaire comporte douze tables ; les extensions en ajoutent souvent davantage. Les principales :
| Table | Ce qu'elle contient |
|---|---|
wp_posts | Articles, pages, révisions, éléments de menu et, pour les thèmes basés sur des blocs, également les modèles et compositions. Les images y figurent aussi, sous forme d'un « article » de type pièce jointe (attachment) |
wp_postmeta | Données supplémentaires liées aux articles, comme le prix d'un produit ou les réglages d'un créateur de page |
wp_options | Réglages du site et des extensions. On y trouve siteurl et home (leçon 3.1), le nom du thème actif et la liste des extensions actives |
wp_users et wp_usermeta | Les comptes, leurs mots de passe (chiffrés) et leur rôle |
wp_terms, wp_term_taxonomy, wp_term_relationships | Catégories, étiquettes et les articles qui s'y rattachent |
wp_comments et wp_commentmeta | Commentaires |
Deux points utiles à retenir. Premièrement : wp_options contient siteurl et home. Si ces valeurs sont incorrectes (par exemple après une migration), votre site redirige tout le monde vers la mauvaise adresse et vous ne pouvez plus accéder à l'administration. Vous pouvez alors les corriger dans phpMyAdmin ou avec des lignes dans wp-config.php (leçon 3.1). Deuxièmement : de nombreux réglages sont enregistrés sous forme sérialisée, un format PHP dans lequel la longueur de chaque texte est comptabilisée. Si vous modifiez une telle valeur à la main, ou si vous lancez un simple « rechercher et remplacer » sur la base de données, cette longueur ne correspond plus et le réglage se retrouve corrompu (leçon 3.2).
Consulter phpMyAdmin ne présente aucun risque. Pour modifier quoi que ce soit, assurez-vous de bien savoir ce que vous faites, et faites toujours une sauvegarde au préalable.
En pratique : à quoi cela ressemble dans un panneau
Nous prenons DirectAdmin comme exemple. Dans cPanel et Plesk, les éléments s'appellent aussi Gestionnaire de fichiers (File Manager) et phpMyAdmin.
- Ouvrez le Gestionnaire de fichiers et allez dans
domains/example.com/public_html. Activez l'affichage des fichiers cachés pour voir.htaccess. - Cliquez sur
wp-config.phpet choisissez l'affichage (pas la modification). RepérezDB_NAMEet$table_prefix. - Ouvrez phpMyAdmin, sélectionnez à gauche la base de données portant ce nom et observez les tables présentes.
- Cliquez sur la table
wp_options(avec votre préfixe) et repérez les lignessiteurlethome.
Récapitulatif
- Un site WordPress, ce sont des fichiers plus une base de données ; une sauvegarde doit comporter les deux.
wp-admin,wp-includeset les fichiers du core isolés appartiennent à WordPress ;wp-contentvous appartient.- wp-config.php contient les informations de base de données, les clés et sels, le préfixe de table et des réglages comme WP_DEBUG. N'en conservez jamais de copie dans le répertoire web.
.htaccessredirige tout ce qui n'est pas un fichier vers index.php ; placez vos propres règles en dehors des blocs de WordPress.wp_optionscontient siteurl et home ; les données sérialisées ne se modifient pas à la main.
Quiz
Exercice
Exercice D1.3 : Explorez votre propre installation. Ouvrez votre répertoire web dans le Gestionnaire de fichiers ou avec un programme FTP, puis votre base de données dans phpMyAdmin. Contentez-vous d'observer, sans rien modifier. Cochez ce que vous avez trouvé et indiquez : le préfixe de table, le nombre de tables dans la base de données, les valeurs de siteurl et home dans wp_options, et les dossiers présents dans wp-content. Notez également si des fichiers se trouvent dans wp-content/mu-plugins et si vous savez d'où ils proviennent. Ne partagez jamais votre mot de passe de base de données, pas même dans ce formulaire.
Exercice D1.3: Explorez votre propre installation
Cet exercice, vous le faites vous-même ; personne ne le vérifie. Cochez ce que vous avez fait et marquez l'exercice comme terminé.
Le préfixe se termine par un trait de soulignement (par exemple wp_ ou un code aléatoire). Une installation normale compte 12 tables ; les extensions en ajoutent d'autres. siteurl et home commencent par https://. Ne communiquez jamais le mot de passe de la base de données présent dans wp-config.php, pas même ici.
Vos cases cochées et vos notes restent uniquement dans ce navigateur ; nous ne les envoyons nulle part. Si vous êtes connecté, nous enregistrons dans Mes formations uniquement le fait que vous avez terminé l'exercice.
Pour aller plus loin
Ces articles décrivent les étapes dans les panneaux de WebOké ; dans d'autres panneaux, le fonctionnement est comparable.
- Guide DirectAdmin 11.1: Ouvrir le Gestionnaire de fichiers : les répertoires de votre hébergement
- Guide DirectAdmin 11.4: Afficher et modifier les fichiers cachés comme .htaccess
- Guide DirectAdmin 12.3: Ouvrir et utiliser phpMyAdmin
- Quels sont le nom d'utilisateur, le mot de passe et le nom de la base de données MySQL ?
- Guide DirectAdmin 18.6: « Error establishing a database connection »
- wp-config.php (developer.wordpress.org, en anglais) : https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
