asset 1
asset 2
asset 3
asset 2
asset 21

wp-config.php : comprendre et bien configurer ce fichier essentiel de WordPress

4 juillet 2025

Le fichier wp-config.php est l’un des fichiers les plus impor­tants de Word­Press. C’est lui qui assure la liai­son entre votre base de don­nées, les clés de sécu­ri­té, les para­mètres tech­niques et les réglages plus avan­cés. Ce fichier est géné­ré auto­ma­ti­que­ment lors de l’installation de Word­Press, mais rien ne vous empêche de le modi­fier, à condi­tion de bien com­prendre ce que vous faites.

Dans cet article, nous allons explo­rer son fonc­tion­ne­ment, voir quelques exemples de constantes que l’on peut ajou­ter, com­ment l’optimiser et quelques astuces pour aller plus loin.

Cet article s’ap­puie prin­ci­pa­le­ment sur la docu­men­ta­tion offi­cielle en fran­çais : Modi­fier le fichier wp-config.php

Structure de base du fichier wp-config.php

Le fichier wp-config.php est situé à la racine de votre ins­tal­la­tion Word­Press, juste à côté des dos­siers wp-content, wp-admin et wp-includes. Il est char­gé très tôt dans le pro­ces­sus, avant le démar­rage com­plet de Word­Press. C’est donc l’endroit idéal pour défi­nir des constantes de configuration.

le fichier wp config est situé à la racine de votre installation wordpress

Bien que Word­Press n’impose pas un ordre strict, on retrouve géné­ra­le­ment les blocs orga­ni­sés de cette manière dans le fichier :

  1. Les constantes de connexion à la base de don­nées
    Ce sont les infor­ma­tions indis­pen­sables pour que Word­Press puisse com­mu­ni­quer avec la base (nom, iden­ti­fiant, mot de passe, hôte…).
  2. Les clés de sécu­ri­té
    Elles servent à chif­frer les cookies et les ses­sions uti­li­sa­teurs. Elles ren­forcent la sécu­ri­té géné­rale du site.
  3. Le pré­fixe des tables
    Déter­mi­né par une variable PHP ($table_prefix), il per­met à Word­Press d’identifier ses propres tables dans la base, et de gérer plu­sieurs sites dans une même base si besoin (pas recom­man­dé mais cela peut dépanner 🙂 ).
  4. Les constantes com­plé­men­taires
    Ce sont des réglages addi­tion­nels liés au débo­gage, à la per­for­mance, à la sécu­ri­té ou à l’environnement (déve­lop­pe­ment, pro­duc­tion…). Ils ne sont pas obli­ga­toires mais très utiles dans une confi­gu­ra­tion personnalisée.
  5. Enfin, dans la der­nière par­tie du fichier, on retrouve deux élé­ments essen­tiels au bon fonc­tion­ne­ment de Word­Press : une constante qui défi­nit le che­min abso­lu vers l’installation et une ins­truc­tion qui per­met de char­ger le cœur du CMS. Ces lignes doivent tou­jours res­ter pré­sentes, posi­tion­nées à cet endroit et inchangées.

Comment accéder au fichier wp-config.php ?

Ce fichier se trouve à la racine de votre ins­tal­la­tion Word­Press.
Pour le modi­fier, vous avez plu­sieurs options :

Impor­tant : je vais me répé­ter sou­vent sur ce sujet mais avant toute modi­fi­ca­tion, faites une copie de sau­ve­garde du fichier.

Constantes de base nécessaires au fonctionnement de WordPress

Dès l’installation, Word­Press rem­plit ce fichier avec des constantes essen­tielles. Voi­ci les élé­ments mini­maux pour que Word­Press fonc­tionne correctement :

// Nom de la base de données utilisée par WordPress
define( 'DB_NAME', 'nom_de_la_base' );

// Identifiant de connexion à la base de données
define( 'DB_USER', 'utilisateur' );

// Mot de passe correspondant à l'utilisateur
define( 'DB_PASSWORD', 'mot_de_passe' );

// Adresse du serveur de base de données (souvent 'localhost')
define( 'DB_HOST', 'localhost' );

// Préfixe utilisé pour les tables de la base de données
$table_prefix = 'wp_';

/**
 * Clés uniques d’authentification et salage.
 */
define( 'AUTH_KEY',         'mettre ici une phrase unique' );
define( 'SECURE_AUTH_KEY',  'mettre ici une phrase unique' );
define( 'LOGGED_IN_KEY',    'mettre ici une phrase unique' );
define( 'NONCE_KEY',        'mettre ici une phrase unique' );
define( 'AUTH_SALT',        'mettre ici une phrase unique' );
define( 'SECURE_AUTH_SALT', 'mettre ici une phrase unique' );
define( 'LOGGED_IN_SALT',   'mettre ici une phrase unique' );
define( 'NONCE_SALT',       'mettre ici une phrase unique' );

/**
 * Chemin absolu vers le répertoire de WordPress.
 * Nécessaire pour inclure les fichiers de base du CMS.
 */
if ( ! defined( 'ABSPATH' ) ) {
    define( 'ABSPATH', __DIR__ . '/' );
}

/**
 * Chargement des fichiers de configuration de WordPress.
 * C'est ce qui démarre réellement WordPress.
 */
require_once ABSPATH . 'wp-settings.php';

Ces lignes consti­tuent la confi­gu­ra­tion mini­male recom­man­dée pour que Word­Press fonc­tionne cor­rec­te­ment : connexion à la base de don­nées, struc­ture des tables, char­ge­ment du cœur du CMS… et clés de sécu­ri­té que l’on aborde ci-dessous. 

Les clés de sécurité

Les clés de sécu­ri­té per­mettent de chif­frer les cookies et de ren­for­cer la sécu­ri­té glo­bale. Vous pou­vez les (re)générer ici : https://​api​.word​press​.org/​s​e​c​r​e​t​-​k​e​y​/​1​.​1​/​s​a​lt/ et copier/coller les valeurs géné­rées. Atten­tion : rem­pla­cer les clés de sécu­ri­té pro­voque la décon­nexion immé­diate de tous les uti­li­sa­teurs connec­tés, y com­pris vous-même si vous êtes dans l’administration au moment du changement.

Pour aller plus loin sur le sujet : Clés de sécu­ri­té dans la docu­men­ta­tion officielle

Lecture commentée du fichier wp-config par défaut

Dans ce cha­pitre, nous allons reprendre le fichier stan­dard ligne par ligne pour en com­men­ter chaque sec­tion. Cela per­met de bien com­prendre ce qui est géné­ré auto­ma­ti­que­ment, et ce que vous pou­vez modifier.

<?php

/**
 * Configuration de base de WordPress.
 * Ce fichier contient les réglages suivants : informations de connexion à la base de données,
 * clés secrètes, préfixe des tables, etc.
 */

// ** Réglages de la base de données - obtenez ces infos auprès de votre hébergeur ** //
define( 'DB_NAME', 'nom_de_la_base' ); // Le nom de votre base de données
define( 'DB_USER', 'utilisateur' ); // Votre identifiant MySQL
define( 'DB_PASSWORD', 'mot_de_passe' ); // Votre mot de passe MySQL
define( 'DB_HOST', 'localhost' ); // L'adresse du serveur MySQL
define( 'DB_CHARSET', 'utf8' ); // Jeu de caractères utilisé par la base (utf8 recommandé)
define( 'DB_COLLATE', '' ); // À laisser vide sauf si besoin spécifique

/**
 * Clés uniques d’authentification et salage.
 * Vous pouvez générer des phrases uniques avec https://api.wordpress.org/secret-key/1.1/salt/
 * et remplacer le bloc complet ci-dessous avec le bloc de texte généré.
 * Je vous conseille de le faire au moins une fois.
 */
define( 'AUTH_KEY',         'mettre ici une phrase unique' );
define( 'SECURE_AUTH_KEY',  'mettre ici une phrase unique' );
define( 'LOGGED_IN_KEY',    'mettre ici une phrase unique' );
define( 'NONCE_KEY',        'mettre ici une phrase unique' );
define( 'AUTH_SALT',        'mettre ici une phrase unique' );
define( 'SECURE_AUTH_SALT', 'mettre ici une phrase unique' );
define( 'LOGGED_IN_SALT',   'mettre ici une phrase unique' );
define( 'NONCE_SALT',       'mettre ici une phrase unique' );

/**
 * Préfixe de table pour la base de données WordPress.
 * Vous pouvez avoir plusieurs installations dans une même base en changeant ce préfixe.
 * Si possible, n'utilisez pas wp_ pour des raisons de sécurité.
 */
$table_prefix = 'wp_';

/**
 * Mode débogage de WordPress.
 * Active l’affichage d’erreurs. 
 * À utiliser uniquement en développement dans une version plus complète.
 */
define( 'WP_DEBUG', false );

/**
 * C’est tout, ne touchez pas à ce qui suit ! Bon blogging !
 */

/**
 * Chemin absolu vers le répertoire de WordPress.
 */
if ( ! defined( 'ABSPATH' ) ) {
    define( 'ABSPATH', __DIR__ . '/' );
}

/**
 * Chargement des fichiers de configuration et des variables globales de WordPress.
 */
require_once ABSPATH . 'wp-settings.php';

Constantes additionnelles utiles

Où insérer ces constantes ?

Toutes les constantes pré­sen­tées dans cet article doivent être ajou­tées dans le fichier wp-config.php, avant la ligne sui­vante :

/** C’est tout, ne touchez pas à ce qui suit ! Bon blogging ! */

Selon la ver­sion ou la langue de votre Word­Press, cette ligne peut aus­si appa­raître ainsi :

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

C’est à cet endroit que Word­Press s’attend à trou­ver les réglages per­son­na­li­sés.
N’ajoutez rien après cette ligne, sinon les réglages risquent d’être ignorés.

Débogage

Acti­ver le mode débo­gage : très utile si vous vou­lez iden­ti­fier un pro­blème sur votre site ou en cours de déve­lop­pe­ment dans un projet.

// Active le mode débogage principal de WordPress
define( 'WP_DEBUG', true );

// Enregistre les erreurs dans un fichier debug.log situé dans le dossier wp-content
define( 'WP_DEBUG_LOG', true );

// N'affiche pas les erreurs à l'écran (pratique en production)
define( 'WP_DEBUG_DISPLAY', false );

Performance

Limi­ter le nombre de sau­ve­gardes d’articles : les ver­sions d’un docu­ment peuvent vite alour­dir votre base de données.

// Limite de 5 versions enregistrées pour chaque article ou page
define( 'WP_POST_REVISIONS', 5 );

Aug­men­ter la mémoire PHP dis­po­nible : La taille allouée dépend du site et du ser­veur. En règle géné­rale, on ajoute plus de mémoire pour le backend (l’in­ter­face d’ad­mi­nis­tra­tion de Word­Press) que pour le fron­tend (les pages visibles par l’internaute).

// Définit la mémoire disponible PHP à 512 Mo côté frontend
define( 'WP_MEMORY_LIMIT', '512M' );

// Définit la mémoire disponible PHP à 768 Mo pour le backend
define( 'WP_MAX_MEMORY_LIMIT', '768M' );

Acti­ver la mise en cache : sou­vent ajou­té auto­ma­ti­que­ment lors de l’ins­tal­la­tion d’une extension.

// Active la gestion du cache si un système de cache est en place
define( 'WP_CACHE', true );

Défi­nir les URLs du site : ces constantes per­mettent de for­cer les adresses du site et de l’administration. Cela évite que Word­Press ne les cherche dans la base de don­nées à chaque char­ge­ment, ce qui apporte un petit gain de per­for­mance. Ces constantes prennent le des­sus sur les réglages de la base de don­nées. Elles peuvent sécu­ri­ser le com­por­te­ment du site si les réglages dans la base sont cor­rom­pus et empê­cher toutes mau­vaises mani­pu­la­tions dans l’in­ter­face d’ad­mi­nis­tra­tion.
Pour un site en pro­duc­tion, stable, et qui ne chan­ge­ra plus d’URL, il est tout à fait accep­table et même conseillé de conser­ver ces constantes. En revanche, si vous tra­vaillez dans un envi­ron­ne­ment évo­lu­tif (site en déve­lop­pe­ment, en pré­prod, ou en migra­tion), il est plus pru­dent de les désac­ti­ver tem­po­rai­re­ment, puis de les remettre une fois le site figé.

// Définir les URL par défaut
define('WP_HOME', 'https://monsite.fr'); // URL de la page d'accueil du site
define('WP_SITEURL', 'https://monsite.fr'); // URL du dossier WordPress (souvent identique à WP_HOME)

⚠️ Atten­tion cepen­dant : si l’URL est incor­recte, vous ris­quez de perdre l’accès à l’administration.

Sécurité

Le fichier wp-config.php per­met de désac­ti­ver cer­taines fonc­tion­na­li­tés sen­sibles de l’administration Word­Press. Ces constantes ne rem­placent pas une stra­té­gie glo­bale de sécu­ri­té (pare-feu, mises à jour, sur­veillance…), mais elles contri­buent à réduire les vec­teurs d’attaque ou à empê­cher des modi­fi­ca­tions accidentelles.

Empê­cher la modi­fi­ca­tion des fichiers depuis l’interface d’ad­mi­nis­tra­tion de WordPress.

// Désactive l'éditeur de fichiers intégré à l'interface d'administration
define( 'DISALLOW_FILE_EDIT', true );

For­cer l’utilisation de HTTPS pour la connexion au site et l’administration de WordPress.

define('FORCE_SSL_ADMIN', true); // Force l'administration et le login en HTTPS

Développement

Défi­nir un envi­ron­ne­ment : la constante uti­li­sée per­met à Word­Press (et à vos exten­sions ou thèmes) de connaître le contexte dans lequel le site fonc­tionne : déve­lop­pe­ment, pré­pro­duc­tion (sta­ging), ou pro­duc­tion. Cela per­met d’activer ou désac­ti­ver auto­ma­ti­que­ment cer­taines fonc­tion­na­li­tés selon l’environnement (par exemple, affi­cher les erreurs uni­que­ment en déve­lop­pe­ment). Voir le cha­pitre « Aller plus loin ».

// Indique à WordPress le type d'environnement (development, staging, production)
define( 'WP_ENVIRONMENT_TYPE', 'development' );

Version optimisée du wp-config.php

Il peut être inté­res­sant de réor­ga­ni­ser votre fichier pour plus de lisi­bi­li­té, voi­ci un exemple de fichier wp-config.php optimisé.

<?php
/**
 * wp-config.php – version optimisée et organisée
 * Ce fichier configure les éléments essentiels de WordPress, tout en intégrant des réglages utiles pour la performance, la sécurité et le débogage.
 */

/* ————————————————
 * Connexion à la base de données
 * ———————————————— */
define( 'DB_NAME',     'nom_de_la_base' );
define( 'DB_USER',     'utilisateur' );
define( 'DB_PASSWORD', 'mot_de_passe' );
define( 'DB_HOST',     'localhost' );
define( 'DB_CHARSET',  'utf8' );
define( 'DB_COLLATE',  '' );

/* ————————————————
 * Clés de sécurité
 * Générer des valeurs uniques ici : https://api.wordpress.org/secret-key/1.1/salt/
 * ———————————————— */
define( 'AUTH_KEY',         'clé unique ici' );
define( 'SECURE_AUTH_KEY',  'clé unique ici' );
define( 'LOGGED_IN_KEY',    'clé unique ici' );
define( 'NONCE_KEY',        'clé unique ici' );
define( 'AUTH_SALT',        'clé unique ici' );
define( 'SECURE_AUTH_SALT', 'clé unique ici' );
define( 'LOGGED_IN_SALT',   'clé unique ici' );
define( 'NONCE_SALT',       'clé unique ici' );

/* ————————————————
 * Préfixe des tables
 * À personnaliser pour éviter les attaques automatisées
 * ———————————————— */
$table_prefix = 'wp_';

/* ————————————————
 * Réglages de performance
 * ———————————————— */
define( 'WP_MEMORY_LIMIT',      '256M' );
define( 'WP_MAX_MEMORY_LIMIT',  '512M' );
define( 'WP_POST_REVISIONS',    5 );
define( 'AUTOSAVE_INTERVAL',    300 ); // en secondes (5 minutes)
define( 'WP_CACHE',             true );

/* ————————————————
 * Débogage (à adapter selon l’environnement)
 * ———————————————— */
define( 'WP_DEBUG',         false );
define( 'WP_DEBUG_LOG',     false );
define( 'WP_DEBUG_DISPLAY', false );

/* ————————————————
 * Sécurité de base
 * ———————————————— */
define( 'DISALLOW_FILE_EDIT', true ); // Empêche l’édition de fichiers dans l’admin
define( 'FORCE_SSL_ADMIN',    true ); // Force le https : nécessite un certificat SSL valide

/* ————————————————
 * Environnement (à utiliser selon vos pratiques)
 * ———————————————— */
define( 'WP_ENVIRONMENT_TYPE', 'production' );

/* ————————————————
 * URL du site (à désactiver en cas de migration ou dans un env. évolutif)
 * ———————————————— */
define( 'WP_HOME',    'https://exemple.com' );
define( 'WP_SITEURL', 'https://exemple.com' );

/* ————————————————
 * Initialisation de WordPress
 * ———————————————— */
if ( ! defined( 'ABSPATH' ) ) {
    define( 'ABSPATH', __DIR__ . '/' );
}
require_once ABSPATH . 'wp-settings.php';

wp-config.php : aller plus loin avec les réglages conditionnels

Voi­ci quelques exemples de réglages condi­tion­nels que l’on peut ajou­ter dans wp​-config​.php​.Il s’agit de réglages avan­cés, mais ils per­mettent d’adapter fine­ment le com­por­te­ment du site selon l’environnement (local, pré­pro­duc­tion, pro­duc­tion…). Même si vous ne les uti­li­sez pas tout de suite, c’est utile de savoir que cette pos­si­bi­li­té existe. 

Il existe deux façons prin­ci­pales de gérer des réglages condi­tion­nels dans wp-config.php : avec des blocs if ou avec un switch. C’est avant tout un choix sty­lis­tique, même si if offre un peu plus de sou­plesse pour des condi­tions complexes.

Définir des réglages conditionnels selon l’environnement avec des blocs if

Vous pou­vez gérer un com­por­te­ment condi­tion­nel selon l’environnement dans lequel se trouve votre site (local, déve­lop­pe­ment, pré­pro­duc­tion, production).

// Définir l’environnement : 'local', 'development', 'staging', 'production'
$environment = 'development';

if ( $environment === 'local' || $environment === 'development' ) {
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', true );
    define( 'WP_ENVIRONMENT_TYPE', 'development' );
}

if ( $environment === 'staging' ) {
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    define( 'WP_ENVIRONMENT_TYPE', 'staging' );
}

if ( $environment === 'production' ) {
    define( 'WP_DEBUG', false );
    define( 'WP_DEBUG_LOG', false );
    define( 'WP_DEBUG_DISPLAY', false );
    define( 'DISALLOW_FILE_EDIT', true );
    define( 'WP_ENVIRONMENT_TYPE', 'production' );
}

Définir des réglages conditionnels selon l’environnement avec un switch

// Définir l’environnement : 'local', 'development', 'staging', 'production'
$environment = 'development';

switch ($environment) {
    case 'local':
    case 'development':
        define('WP_DEBUG', true);
        define('WP_DEBUG_LOG', true);
        define('WP_DEBUG_DISPLAY', true);
        define('WP_ENVIRONMENT_TYPE', 'development');
        break;

    case 'staging':
        define('WP_DEBUG', true);
        define('WP_DEBUG_LOG', true);
        define('WP_DEBUG_DISPLAY', false);
        define('WP_ENVIRONMENT_TYPE', 'staging');
        break;

    case 'production':
    default:
        define('WP_DEBUG', false);
        define('WP_DEBUG_LOG', false);
        define('WP_DEBUG_DISPLAY', false);
        define('DISALLOW_FILE_EDIT', true);
        define('WP_ENVIRONMENT_TYPE', 'production');
        break;
}

Activer le mode debug en local automatiquement

Dans cer­tains cas, il peut être utile de condi­tion­ner cer­tains réglages en fonc­tion du nom de domaine ou de l’URL appe­lée. Cela per­met, par exemple, d’activer auto­ma­ti­que­ment cer­taines options en local, en pré­pro­duc­tion ou en pro­duc­tion, sans modi­fier manuel­le­ment le fichier wp-config.php à chaque fois.

Cette méthode est pra­tique pour ne pas modi­fier manuel­le­ment le fichier wp-config.php quand vous chan­gez d’environnement. Vous pou­vez aus­si adap­ter ce bloc si vous uti­li­sez d’autres ter­mi­nai­sons (.test, .dev, etc.).

// Active le mode debug uniquement si l'URL du site se termine par .local
// (utile pour les environnements locaux comme monsite.local)
// Nécessite PHP 8.0 ou plus
if ( str_ends_with( $_SERVER['HTTP_HOST'], '.local' ) ) {
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', true );
}

Ces exemples montrent que wp-config.php ne sert pas seule­ment à poser les fon­da­tions du site : il peut aus­si s’adapter à votre façon de tra­vailler. En appre­nant à condi­tion­ner cer­tains réglages, vous gagnez en sou­plesse et en effi­ca­ci­té, que vous soyez en local, en test ou en production.

Conclusion

Le fichier wp-config.php regroupe en un seul endroit la confi­gu­ra­tion essen­tielle de votre site Word­Press. En le com­pre­nant bien, vous gagnez en auto­no­mie et pou­vez aller plus loin dans l’optimisation, la sécu­ri­té ou la per­son­na­li­sa­tion de votre site. Mais n’oubliez jamais : avant chaque modi­fi­ca­tion, sauvegardez !

Pho­to de l’image mise en avant : mer­ci à Jaf­fer Niza­mi 

Laisser un commentaire

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