WordPress

Introduction au fichier wp-config.php

9 septembre 2015

Introduction au fichier wp-config.php

En général les articles du blog sont plus tournés vers les utilisateurs moyens et avancés, assez rarement pour les débutants. Pour une fois je vais m’adresser à tous ceux qui débutent avec WordPress et n’en connaissent pas encore toutes les bases.

En tant qu’utilisateur de WordPress, vous savez probablement que vous pouvez personnaliser la mise en page de votre site WordPress avec des thèmes, et que vous pouvez créer votre propre thème, si vous voulez avoir un site Web entièrement personnalisé. Mais mis à part l’apparence, certaines parties de la configuration peuvent être assez facilement modifiées au moyen du fichier « wp-config.php ».

Alors bouclez votre ceinture, nous sommes sur le point de plonger au cœur de l’un des fichiers les plus importants de WordPress, j’ai nommé: wp-config.php.

Au cœur de WordPress: wp-config.php

Introduction à wp-config.php

Comme son nom l’indique, le fichier wp-config.php est un fichier de configuration faisant partie de tous les sites WordPress auto-hébergés, qui peut être utilisé pour spécifier une grande variété de paramètres de configuration, vous permettant d’améliorer la fonctionnalité, la performance et la sécurité de votre site WordPress.

Comprendre wp-config.php

Le fichier « wp-config.php », se trouve dans le répertoire racine de votre installation WordPress, au même endroit que les dossiers « wp-admin » , « wp-includes » et « wp-content« . Le fichier contient beaucoup d’informations nécessaires à WordPress pour fonctionner. Si ce fichier n’est pas installé correctement, WordPress ne fonctionnera pas, ce qui signifie que votre site sera indisponible ou que l’inexactitude des données peut même détruire votre installation.

Pourquoi le fichier wp-config.php est-il si important?

La réponse à cette question est relativement simple, le fichier wp-config.php est le lien le plus important entre votre site et votre base de données. Il contient toutes les informations d’identification essentielles qui permettent à WordPress de communiquer avec votre base de données.

Pour le dire autrement, si ce fichier n’existait pas, WordPress ne pourrait pas accéder à la base de données, et sans aucun moyen de stocker et de récupérer vos données, votre site n’aurait pas lieu d’être.

Puisque ce fichier contient beaucoup d’informations sensibles, il est recommandé de ne « pas faire d’essais » avec ce fichier, sauf si vous savez exactement ce que vous faites.

Voici le code complet du fichier wp-config par défaut:

<?php
/**
 * La configuration de base de votre installation WordPress.
 *
 * Le script de création wp-config.php utilise ce fichier lors de l'installation.
 * Vous n'avez pas à utiliser l'interface web, vous pouvez directement
 * renommer ce fichier en "wp-config.php" et remplir les variables à la main.
 * 
 * Ce fichier contient les configurations suivantes :
 * 
 * * réglages MySQL ;
 * * clefs secrètes ;
 * * préfixe de tables de la base de données ;
 * * ABSPATH.
 * 
 * @link https://codex.wordpress.org/Editing_wp-config.php 
 * 
 * @package WordPress
 */

// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define('DB_NAME', 'votre_nom_de_bdd');

/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'votre_utilisateur_de_bdd');

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'votre_mdp_de_bdd');

/** 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', 'utf8');

/** Type de collation de la base de données. 
  * N'y touchez que si vous savez ce que vous faites. 
  */
define('DB_COLLATE', '');

/**#@+
 * Clefs uniques d'authentification et salage.
 *
 * Remplacez les valeurs par défaut par des phrases uniques !
 * Vous pouvez générer des phrases aléatoires en utilisant 
 * {@link https://api.wordpress.org/secret-key/1.1/salt/ le service de clefs secrètes de WordPress.org}.
 * Vous pouvez modifier ces phrases à n'importe quel moment, afin d'invalider tous les cookies existants.
 * Cela forcera également tous les utilisateurs à se reconnecter.
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         'put your unique phrase here'); 
define('SECURE_AUTH_KEY',  'put your unique phrase here'); 
define('LOGGED_IN_KEY',    'put your unique phrase here'); 
define('NONCE_KEY',        'put your unique phrase here'); 
define('AUTH_SALT',        'put your unique phrase here'); 
define('SECURE_AUTH_SALT', 'put your unique phrase here'); 
define('LOGGED_IN_SALT',   'put your unique phrase here'); 
define('NONCE_SALT',       'put your unique phrase here'); 
/**#@-*/

/**
 * 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  = 'wp_';

/** 
 * Pour les développeurs : le mode déboguage de WordPress.
 * 
 * En passant la valeur suivante à "true", vous activez l'affichage des
 * notifications d'erreurs pendant votre essais.
 * Il est fortemment recommandé que les développeurs d'extensions et
 * de thèmes se servent de WP_DEBUG dans leur environnement de 
 * développement.
 * 
 * Pour obtenir plus d'information sur les constantes 
 * qui peuvent être utilisée pour le déboguage, consultez le Codex.
 * 
 * @link https://codex.wordpress.org/Debugging_in_WordPress 
 */ 
define('WP_DEBUG', false); 

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

/** Chemin absolu vers le dossier de WordPress. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');

/** Réglage des variables de WordPress et de ses fichiers inclus. */
require_once(ABSPATH . 'wp-settings.php');

Chaque section du fichier wp-config.php est bien documentée dans le fichier lui-même, et presque tous les paramètres sont définis en utilisant des constantes PHP.

Accèder à wp-config.php

Par défaut, WordPress n’est pas livré avec un fichier wp-config.php, celui-ci est créé durant le processus d’installation par défaut. Les utilisateurs avancés ont la possibilité de créer ce fichier manuellement, en utilisant pour base le fichier wp-config-sample.php livré par défaut avec WordPress. Vous pouvez également accéder et modifier au fichier wp-config.php si vous avez un éditeur de texte installé.

fichier wp-config

Par défaut, le fichier wp-config.php de votre site se trouve dans le dossier /public_html, qui est accessible via un client FTP comme FileZilla.

Il est important de vous rappeler que le fichier wp-config.php est le noyau essentiel de votre installation WordPress. Je vous recommande de ne pas apporter de modifications à ce fichier sans au préalable effectuer une copie de sauvegarde.

Même si vous vous considérez un utilisateur WordPress avancé, des erreurs se produisent. Alors par mesure de sécurité, faites une copie de sauvegarde.

Un homme avertit en vaut deux!

Les champs de base du fichier wp-config.php

A présent que nous avons une idée de l’objectif premier du fichier wp-config.php et que nous savons où le trouver, nous allons jeter un œil à l’intérieur.

Au début du fichier, vous trouverez quelques-uns des champs les plus importants. Ils ressemblent à ceci:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

/** MySQL hostname */
define('DB_HOST', 'localhost');

Si vous êtes un utilisateur novice de WordPress, je suis sûr que le code ci-dessus semble plus qu’un peu intimidant, ai-je raison? Sauf si vous avez créé votre base de données MySQL manuellement, ces champs sont remplis automatiquement, donc vous n’aurez pas besoin de vous préoccuper d’eux.

Si vous avez créé votre base de données MySQL manuellement, vous devrez entrer le nom de la base de données à la place de database_name_here, le nom de l’utilisateur et son mot de passe sont à insérer dans les zones adéquates, à savoir le Nom de l’utilisateur sera inséré en lieu et place de username_here, et le Mot de Passe ira remplacer password_here.

Le nom d’hôte MySQL (MySQL Hostname) fonctionne un peu différemment, et variera en fonction de votre hébergeur. Certains des services d’hébergement les plus populaires utilisent la valeur par défaut « localhost« , donc il y a de fortes chances que vous n’ayez rien à modifier. Je vous recommande toutefois, fortement, de contacter votre hébergeur pour vous assurer que cette valeur est correcte.

Si ces quatre champs sont remplis automatiquement, pourquoi auriez-vous besoin d’en savoir autant à leur sujet?

Eh bien, il est toujours bon de savoir où l’on met les pieds, et l’information est toujours bonne à prendre, comme de savoir que les fautes d’orthographe sont l’une des causes les plus fréquentes dans les erreurs de connexion à la base de données. Armés de cette connaissance, vous pouvez éditer le fichier wp-config.php et corriger les fautes.

Et puisque nous parlons ici des informations de connexion, il est important que les quatre valeurs soient correctes. Si elles ne le sont pas, des erreurs se produisent, de la même manière que vous ne pouvez pas faire une faute de frappe dans votre nom d’utilisateur ou votre mot de passe lorsque vous essayez d’accéder à votre tableau de bord WordPress.

Les clés de sécurité wp-config.php

Le fichier wp-config.php est également utilisé pour définir les clés de sécurité de votre site. Nombre de spécialistes de la sécurité considèrent qu’aujourd’hui ces clés ne sont plus utiles, toutefois lorsque l’on n’est pas maître dans un domaine, il vaut mieux suivre les suggestions faites par le concepteur du produit.

clé de sécurité WordPress

Voyons ce qu’en dit le Codex WordPress:

In simple terms, a secret key is a password with elements that make it harder to generate enough options to break through your security barriers. A password like « password » or « test » is simple and easily broken. A random, unpredictable password such as « 88a7da62429ba6ad3cb3c76a09641fc » takes years to come up with the right combination. A ‘salt is used to further enhance the security of the generated result.

WordPress utilise ces clés de sécurité pour autoriser et crypter les cookies. En tant que tel, vous devez vous assurer que ces clés sont vraiment sûres, je vous recommande d’utiliser des chaînes de caractères super-longues, beaucoup plus complexes que votre mot de passe.

WordPress va automatiquement générer ces clés pour vous, mais si vous avez installé le fichier wp-config.php manuellement, vous serez responsable de la création de vos propres clés. La section des clés de sécurité ressemble à ceci:

* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');

Voici un exemple de clé de sécurité (Veillez à ne pas utiliser ces clés, par mesure de sécurité)

define('AUTH_KEY',         'M^-J@|J|RF+g}w?6PHrQis]XA&|I*JJ@lX.ZWN7O|-hA WO.m*,Lvp;6T]~;?+bM');
define('SECURE_AUTH_KEY',  'TaHz c8m{9![n%}x]58Pz+&x>56PQIF1$w=G8KME56FV3q3WT>y,sY>,n)4vKnPR');
define('LOGGED_IN_KEY',    'e?MV !|p0^]b:5wG~_1LXzfIQr*,LvwR4cR8k%xE`2m/mE_V 81X2I6MA<V(<QSC');
define('NONCE_KEY',        '`-iN@8W2vs[E1!U~S,p,`3kZ~janRL(UtZGJD8NiZE5IYLjWej-;E+3Yvb5KC`O$');
define('AUTH_SALT',        'l:[EEY[$@.X|54Qagugt9k?yK,KtbLWnny+5?<pgl|=kHTGl81{I.-?XP17z-8T+');
define('SECURE_AUTH_SALT', 'Pd*:%+w&KBmn4#2 8}Qi*JI[S==P+E}RZHkGatiu+u}LO]aPW(U|I!B6;wESEuq(');
define('LOGGED_IN_SALT',   'O_A+(|S$XN_d1`a|z+|C{-%DQ;!]Qr;(nceO##+w,x6Vq1IX|1]a4LbfG7!7R0s{');
define('NONCE_SALT',       '-dK*Ts`[{lx@8wL|1?d$rQEV(7/QjES@547@,PeN0j#%T0/fY;On{`Hjz%|GX$!,');

Pour créer vos clés de sécurité WordPress a créé un outil pour générer des clés complexes à votre place. Rendez-vous sur la page du générateur de clé de sécurité WordPress, ou cliquez sur le bouton ci-dessous.

 

Une fois les clés générées, il vous suffit de les ajouter à la place de « put your unique phrase here« . Pour vous aider à créer des clés de sécurité uncrackable, .

Appuyez simplement sur ​​Actualiser pour générer un autre jeu de clés. Vous pouvez ensuite copier et coller les résultats directement dans le fichier wp-config.php, plutôt que de coller les clés champ par champ.

Pourquoi ces champs sont importants? En changeant une seule des clés, vous pouvez instantanément déconnecter tous les utilisateurs connectés. C’est un moyen utile pour protéger votre site WordPress contre les menaces connues.

Et, si vous vous demandez ce que sont les quatre champs SALT, ils doublent essentiellement la sécurité fournie par les clés primaires.

Un dernier conseil

Avant de terminer cet article, je voulais vous suggérer de protéger votre fichier wp-config des curieux. Pour ce faire, rajouter le code ci-dessous à votre fichier .htaccess, situé à la racine de votre site WordPress

<files wp-config.php>
order allow,deny
deny from all
</files>

Ces quelques lignes empêcheront quiconque de lire les données « confidentielles » contenues à l’intérieur de votre fichier de configuration.

Pour conclure

Etant l’un des fichiers de base de WordPress, wp-config.php est naturellement complexe et quelque peu intimidant. Aujourd’hui, je n’ai fait qu’effleuré la surface du fichier wp-config.php, il y a bien d’autres points à aborder, mais j’espère, qu’à présent vous avez une meilleure compréhension de la mécanique qui tourne dans les coulisses de WordPress.

Avez-vous déjà modifié le fichier wp-config.php? Partagez vos expériences dans les commentaires ci-dessous!

séparateur de texte

Si vous avez trouvé cet article intéressant, Partagez le, il intéressera d’autres personnes. Merci!

4 commentaires
  1. Li-An

    Bonjour, j'ai juste survolé l'article mais il me parait utile de rappeler que si le fichier est modifié avec un logiciel genre Notepad++, il faut bien vérifier qu'il est au format UTF8-sansbom sinon gare au plantage.

  2. Hubert

    Merci de cette remarque pertinente. Mes logiciels étant configurés, il m'arrive d'oublier que tout le monde n'est pas dans le même cas.

  3. Kobat

    Bonjour,Mon peu d’expérience de modification du fichier wp-config.php est une belle erreur ! Déjà, j'ai voulu modifier le préfixe des tables 'wp_' avec le plugin WordPress Security Scan. Ça a bien fonctionné. En me connectant à ma base de donnée via phpMyAdmin, j'ai pu constaté que le préfixe avait bien été modifié (de wp_ à newprefixe_ par exemple). Ensuite j'ai fait l'erreur d'éditer le fichier wp-config.php (pensant qu'il fallait également modifier le préfixe à cet endroit précis : $table_prefix = 'wp_')Et voilà que mon site n'apparait plus ! Voici la page qui apparait lorsque je souhaite aller sur mon site (sur l'url ou sur la page admin) : ERREUR : la variable $table_prefix du fichier wp-config.php ne peut contenir que des chiffres, des lettres et des tirets bas ( _ ). C'est bien ce que j'ai fait pourtant (lettres+chiffres+tiret du bas) !Peut-être auriez-vous une solution à mon problème ? Je préfère ne plus rien toucher mais je pense que j'aurais dû lire votre article avant...Merci pour votre aide !

  4. Hubert

    Bonjour Kobat,Au lire de votre commentaire, je suppose que vous n'avez pas fait de sauvegarde du fichier p-config avant de le modifier, comme noté dans l'article. Commencez par ouvrir votre fichier wp-config, et vérifier la ligne "$table_prefix = 'wp_';" pour voir en quoi elle diffère de l'exmple donné dans l'article. Vérifiez que vous n'avez pas oublié les guillemets simples (') avant et après, que le point virgule (;) termine bien la ligne et surtout qu'il n'y ait aucun espace vide après le point virgule. Tenez moi informé.

Laisser un commentaire

You have to agree to the comment policy.

-20% sur ElegantThemes.com Maintenant !Cliquez-ici !
+

-20% sur les thèmes et les plugins d’ElegantThemes.Com

-20%

OFFRE