Situé à la racine de chaque installation, le fichier wp-config.php est le véritable cœur de configuration de WordPress. Il fait le pont entre vos fichiers PHP et votre base de données MySQL. Sans lui, le CMS ne peut ni exécuter de requêtes SQL ni charger la moindre page web. Ce fichier central permet également d’activer le mode de débogage, d’ajuster les ressources serveur et de verrouiller des paramètres critiques de sécurité.
Généré automatiquement lors de l’installation de WordPress via l’assistant graphique, ce fichier peut également être manipulé manuellement pour optimiser votre flux de travail en développement local et sécuriser votre mise en production.
Sommaire
- Rôle et emplacement du fichier wp-config.php
- Paramètres de connexion à la base de données
- Clés secrètes d’authentification et salage de session
- Constantes de débogage indispensables en développement
- Constantes avancées : URLs, mémoire et sécurité
- Sécurisation et droits d’accès sur le serveur
- Questions fréquentes
Rôle et emplacement du fichier wp-config.php
Le fichier wp-config.php se trouve au premier niveau de votre arborescence WordPress, au même niveau que les répertoires wp-admin/, wp-includes/ et wp-content/. Dans l’archive officielle téléchargée sur WordPress.org, ce fichier n’existe pas encore sous ce nom : il est fourni sous l’intitulé wp-config-sample.php pour servir de modèle.
C’est l’assistant d’installation qui le crée et le remplit à partir des informations saisies dans les formulaires. Si vous souhaitez réinitialiser entièrement une installation WordPress sans supprimer vos médias ou vos thèmes, il suffit de supprimer le fichier wp-config.php : WordPress relancera immédiatement la procédure d’installation initiale dès que vous ouvrirez votre site dans le navigateur.
Paramètres de connexion à la base de données
Le premier bloc d’instructions de wp-config.php définit les constantes PHP nécessaires pour établir la liaison avec le serveur MySQL ou MariaDB :
// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define( 'DB_NAME', 'netfloux' );
/** Utilisateur de la base de données MySQL. */
define( 'DB_USER', 'root' );
/** Mot de passe de la base de données MySQL. */
define( 'DB_PASSWORD', 'root' );
/** Adresse de l’hébergement MySQL. */
define( 'DB_HOST', 'localhost' );
/** Jeu de caractères à utiliser par la base de données lors de la création des tables. */
define( 'DB_CHARSET', 'utf8mb4' );
/** Type de collation de la base de données. */
define( 'DB_COLLATE', '' );
/** Préfixe des tables de la base de données WordPress. */
$table_prefix = 'wp_';En environnement local, la constante DB_PASSWORD illustre la différence classique entre les suites de développement :
- Sur MAMP (macOS) : la valeur par défaut est
rootpour l’utilisateur et le mot de passe. - Sur XAMPP (PC Windows) : le compte
rootn’a aucun mot de passe. La constante doit donc rester vide :define( 'DB_PASSWORD', '' );. - Sur un serveur distant en production : veillez à renseigner un mot de passe complexe et un identifiant dédié créé spécifiquement pour cette base, distinct du compte superadministrateur du serveur.
Clés secrètes d’authentification et salage de session
WordPress intègre une série de huit clés de sécurité aléatoires (Security Keys & Salts) qui renforcent le chiffrement des informations stockées dans les cookies de session des utilisateurs connectés :
define( 'AUTH_KEY', 'chaine_aleatoire_unique_de_64_caracteres' );
define( 'SECURE_AUTH_KEY', 'chaine_aleatoire_unique_de_64_caracteres' );
define( 'LOGGED_IN_KEY', 'chaine_aleatoire_unique_de_64_caracteres' );
define( 'NONCE_KEY', 'chaine_aleatoire_unique_de_64_caracteres' );
define( 'AUTH_SALT', 'chaine_aleatoire_unique_de_64_caracteres' );
define( 'SECURE_AUTH_SALT', 'chaine_aleatoire_unique_de_64_caracteres' );
define( 'LOGGED_IN_SALT', 'chaine_aleatoire_unique_de_64_caracteres' );
define( 'NONCE_SALT', 'chaine_aleatoire_unique_de_64_caracteres' );Ces chaînes complexes rendent le déchiffrement des mots de passe et des jetons d’authentification quasi impossible par attaque par force brute. Si vous suspectez une intrusion sur votre site ou si vous souhaitez forcer la déconnexion immédiate de l’ensemble des comptes utilisateurs connectés, il vous suffit de régénérer ces huit clés via le générateur officiel de WordPress.org et de les remplacer dans le fichier.
Constantes de débogage indispensables en développement
Par défaut, WordPress désactive l’affichage des avertissements et des erreurs PHP pour ne pas divulguer d’informations techniques sensibles aux visiteurs. Lorsque vous développez un thème de blocs Full Site Editing (FSE) ou une extension sur mesure, l’activation des outils de débogage est indispensable pour repérer immédiatement les erreurs de syntaxe, les fonctions dépréciées et les dysfonctionnements logiques.
| Constante | Valeur recommandée en local | Rôle et utilité |
|---|---|---|
WP_DEBUG | true | Active le moteur de détection d’erreurs et de notifications PHP de WordPress. |
WP_DEBUG_LOG | true | Écrit les messages d’erreur dans le fichier wp-content/debug.log. |
WP_DEBUG_DISPLAY | false (ou true) | Empêche l’affichage direct des erreurs dans le HTML pour ne pas casser la mise en page. |
SCRIPT_DEBUG | true | Force WordPress à charger les scripts JS et CSS non minifiés pour faciliter le débogage. |
Voici la configuration complète recommandée pour votre environnement de travail local dans wp-config.php :
// Configuration de débogage pour environnement de développement local
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'SCRIPT_DEBUG', true );Grâce à cette combinaison, les erreurs ne viennent pas parasiter le rendu visuel de vos blocs Gutenberg, mais sont consignées dans le fichier wp-content/debug.log que vous pouvez surveiller directement dans votre éditeur de code.
Constantes avancées : URLs, mémoire et sécurité
Au-delà de la base de données et du débogage, wp-config.php permet de déclarer plusieurs directives avancées qui surchargent la base de données :
- Verrouiller les URLs du site (WP_HOME et WP_SITEURL) : si vous migrez un site local vers un autre dossier ou que vous modifiez accidentellement les adresses dans les réglages WordPress, déclarer ces constantes dans
wp-config.phprétablit l’accès instantanément sans toucher à la base de données SQL :define( 'WP_HOME', 'http://localhost:8888/netfloux' );define( 'WP_SITEURL', 'http://localhost:8888/netfloux' ); - Augmenter la mémoire allouée à PHP : certains thèmes riches ou constructeurs nécessitent davantage de mémoire vive que la limite de base (40 Mo). Vous pouvez relever ce plafond :
define( 'WP_MEMORY_LIMIT', '256M' ); - Désactiver l’éditeur de code intégré : pour interdire la modification directe des fichiers PHP depuis le tableau de bord d’administration et bloquer une faille classique en cas de piratage d’un compte administrateur :
define( 'DISALLOW_FILE_EDIT', true ); - Limiter le nombre de révisions d’articles : par défaut, WordPress enregistre chaque révision sans limite, ce qui gonfle inutilement la taille de la base de données sur les gros sites. Vous pouvez limiter l’historique aux 5 dernières versions :
define( 'WP_POST_REVISIONS', 5 );
Sécurisation et droits d’accès sur le serveur
Contenant les identifiants d’accès à la base de données en clair, le fichier wp-config.php constitue la cible numéro un des attaques malveillantes. Plusieurs mesures garantissent sa protection :
- Permissions de fichiers strictes : sur un serveur Linux en production (Apache / Nginx), appliquez des droits d’accès restreints comme
chmod 440ouchmod 400pour interdire la lecture du fichier aux autres utilisateurs système du serveur. En local (MAMP ou XAMPP), les droits standards644suffisent pour vos tests. - Protection via le fichier .htaccess : vous pouvez bloquer toute tentative d’accès HTTP direct au fichier depuis l’extérieur en intégrant une règle dédiée dans votre fichier .htaccess à la racine.
- Déplacement d’un cran au-dessus de la racine : si votre WordPress est installé à la racine de votre hébergement web, vous pouvez déplacer physiquement
wp-config.phpd’un niveau au-dessus du dossierpublic_html/. WordPress est nativement programmé pour remonter automatiquement d’un cran dans l’arborescence s’il ne trouve pas le fichier à sa racine directe.
Questions fréquentes
Ouvrez wp-config.php dans votre éditeur de code et inspectez les quatre constantes DB_NAME, DB_USER, DB_PASSWORD et DB_HOST. Vérifiez que le nom de la base existe dans phpMyAdmin et contrôlez le mot de passe : sous MAMP le mot de passe est root, alors que sous XAMPP le mot de passe doit impérativement rester vide.
Lorsque la constante WP_DEBUG_LOG est active avec la valeur true, WordPress enregistre l’ensemble des erreurs, warnings et notices PHP dans un fichier debug.log situé directement dans le dossier wp-content/. Si ce fichier n’apparaît pas, vérifiez que le serveur dispose bien des droits d’écriture sur ce dossier.
Si le site est devenu inaccessible après une modification dans Réglages > Général, ajoutez simplement les lignes define(‘WP_HOME’, ‘http://localhost:8888/netfloux’); et define(‘WP_SITEURL’, ‘http://localhost:8888/netfloux’); au début de votre fichier wp-config.php. Ces constantes surchargent immédiatement la configuration sans avoir à modifier la base de données dans phpMyAdmin.
Oui, trois modifications majeures sont impératives : renseigner les identifiants MySQL de votre hébergeur distant, désactiver l’affichage public des erreurs (WP_DEBUG sur false) et régénérer les clés secrètes d’authentification et de salage pour garantir la sécurité des sessions.
Étape suivante du programme :