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 importants de WordPress. C’est lui qui assure la liaison entre votre base de données, les clés de sécurité, les paramètres techniques et les réglages plus avancés. Ce fichier est généré automatiquement lors de l’installation de WordPress, mais rien ne vous empêche de le modifier, à condition de bien comprendre ce que vous faites.

Dans cet article, nous allons explorer son fonctionnement, voir quelques exemples de constantes que l’on peut ajouter, comment l’optimiser et quelques astuces pour aller plus loin.

Cet article s’appuie principalement sur la documentation officielle en français : Modifier le fichier wp-config.php

Structure de base du fichier wp-config.php

Le fichier wp-config.php est situé à la racine de votre installation WordPress, juste à côté des dossiers wp-content, wp-admin et wp-includes. Il est chargé très tôt dans le processus, avant le démarrage complet de WordPress. C’est donc l’endroit idéal pour définir des constantes de configuration.

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

Bien que WordPress n’impose pas un ordre strict, on retrouve généralement les blocs organisés de cette manière dans le fichier :

  1. Les constantes de connexion à la base de données
    Ce sont les informations indispensables pour que WordPress puisse communiquer avec la base (nom, identifiant, mot de passe, hôte…).
  2. Les clés de sécurité
    Elles servent à chiffrer les cookies et les sessions utilisateurs. Elles renforcent la sécurité générale du site.
  3. Le préfixe des tables
    Déterminé par une variable PHP ($table_prefix), il permet à WordPress d’identifier ses propres tables dans la base, et de gérer plusieurs sites dans une même base si besoin (pas recommandé mais cela peut dépanner 🙂 ).
  4. Les constantes complémentaires
    Ce sont des réglages additionnels liés au débogage, à la performance, à la sécurité ou à l’environnement (développement, production…). Ils ne sont pas obligatoires mais très utiles dans une configuration personnalisée.
  5. Enfin, dans la dernière partie du fichier, on retrouve deux éléments essentiels au bon fonctionnement de WordPress : une constante qui définit le chemin absolu vers l’installation et une instruction qui permet de charger le cœur du CMS. Ces lignes doivent toujours rester présentes, positionnées à cet endroit et inchangées.

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

Ce fichier se trouve à la racine de votre installation WordPress.
Pour le modifier, vous avez plusieurs options :

Important : je vais me répéter souvent sur ce sujet mais avant toute modification, faites une copie de sauvegarde du fichier.

Constantes de base nécessaires au fonctionnement de WordPress

Dès l’installation, WordPress remplit ce fichier avec des constantes essentielles. Voici les éléments minimaux pour que WordPress fonctionne 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 constituent la configuration minimale recommandée pour que WordPress fonctionne correctement : connexion à la base de données, structure des tables, chargement du cœur du CMS… et clés de sécurité que l’on aborde ci-dessous.

Les clés de sécurité

Les clés de sécurité permettent de chiffrer les cookies et de renforcer la sécurité globale. Vous pouvez les (re)générer ici : https://api.wordpress.org/secret-key/1.1/salt/ et copier/coller les valeurs générées. Attention : remplacer les clés de sécurité provoque la déconnexion immédiate de tous les utilisateurs connectés, y compris vous-même si vous êtes dans l’administration au moment du changement.

Pour aller plus loin sur le sujet : Clés de sécurité dans la documentation officielle

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

Dans ce chapitre, nous allons reprendre le fichier standard ligne par ligne pour en commenter chaque section. Cela permet de bien comprendre ce qui est généré automatiquement, et ce que vous pouvez 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ésentées dans cet article doivent être ajoutées dans le fichier wp-config.php, avant la ligne suivante :

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

Selon la version ou la langue de votre WordPress, cette ligne peut aussi apparaître ainsi :

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

C’est à cet endroit que WordPress s’attend à trouver les réglages personnalisés.
N’ajoutez rien après cette ligne, sinon les réglages risquent d’être ignorés.

Débogage

Activer le mode débogage : très utile si vous voulez identifier un problème sur votre site ou en cours de développement 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

Limiter le nombre de sauvegardes d’articles : les versions d’un document peuvent vite alourdir votre base de données.

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

Augmenter la mémoire PHP disponible : La taille allouée dépend du site et du serveur. En règle générale, on ajoute plus de mémoire pour le backend (l’interface d’administration de WordPress) que pour le frontend (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' );

Activer la mise en cache : souvent ajouté automatiquement lors de l’installation d’une extension.

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

Définir les URLs du site : ces constantes permettent de forcer les adresses du site et de l’administration. Cela évite que WordPress ne les cherche dans la base de données à chaque chargement, ce qui apporte un petit gain de performance. Ces constantes prennent le dessus sur les réglages de la base de données. Elles peuvent sécuriser le comportement du site si les réglages dans la base sont corrompus et empêcher toutes mauvaises manipulations dans l’interface d’administration.
Pour un site en production, stable, et qui ne changera plus d’URL, il est tout à fait acceptable et même conseillé de conserver ces constantes. En revanche, si vous travaillez dans un environnement évolutif (site en développement, en préprod, ou en migration), il est plus prudent de les désactiver temporairement, 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)

⚠️ Attention cependant : si l’URL est incorrecte, vous risquez de perdre l’accès à l’administration.

Sécurité

Le fichier wp-config.php permet de désactiver certaines fonctionnalités sensibles de l’administration WordPress. Ces constantes ne remplacent pas une stratégie globale de sécurité (pare-feu, mises à jour, surveillance…), mais elles contribuent à réduire les vecteurs d’attaque ou à empêcher des modifications accidentelles.

Empêcher la modification des fichiers depuis l’interface d’administration de WordPress.

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

Forcer 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éfinir un environnement : la constante utilisée permet à WordPress (et à vos extensions ou thèmes) de connaître le contexte dans lequel le site fonctionne : développement, préproduction (staging), ou production. Cela permet d’activer ou désactiver automatiquement certaines fonctionnalités selon l’environnement (par exemple, afficher les erreurs uniquement en développement). Voir le chapitre « 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éressant de réorganiser votre fichier pour plus de lisibilité, voici 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

Voici quelques exemples de réglages conditionnels que l’on peut ajouter dans wp-config.php.Il s’agit de réglages avancés, mais ils permettent d’adapter finement le comportement du site selon l’environnement (local, préproduction, production…). Même si vous ne les utilisez pas tout de suite, c’est utile de savoir que cette possibilité existe.

Il existe deux façons principales de gérer des réglages conditionnels dans wp-config.php : avec des blocs if ou avec un switch. C’est avant tout un choix stylistique, même si if offre un peu plus de souplesse pour des conditions complexes.

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

Vous pouvez gérer un comportement conditionnel selon l’environnement dans lequel se trouve votre site (local, développement, préproduction, 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 certains cas, il peut être utile de conditionner certains réglages en fonction du nom de domaine ou de l’URL appelée. Cela permet, par exemple, d’activer automatiquement certaines options en local, en préproduction ou en production, sans modifier manuellement le fichier wp-config.php à chaque fois.

Cette méthode est pratique pour ne pas modifier manuellement le fichier wp-config.php quand vous changez d’environnement. Vous pouvez aussi adapter ce bloc si vous utilisez d’autres terminaisons (.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 seulement à poser les fondations du site : il peut aussi s’adapter à votre façon de travailler. En apprenant à conditionner certains réglages, vous gagnez en souplesse et en efficacité, que vous soyez en local, en test ou en production.

Conclusion

Le fichier wp-config.php regroupe en un seul endroit la configuration essentielle de votre site WordPress. En le comprenant bien, vous gagnez en autonomie et pouvez aller plus loin dans l’optimisation, la sécurité ou la personnalisation de votre site. Mais n’oubliez jamais : avant chaque modification, sauvegardez !

Photo de l’image mise en avant : merci à Jaffer Nizami 

Laisser un commentaire

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