Présentation du fichier wp-config.php

Comme tout CMS, WordPress possède un fichier de configuration permettant de modifier certaines fonctionnalités ou le comportement du système. C’est l’un des fichiers les plus importants qui est automatiquement généré lors de l’installation de WordPress. C’est un fichier réservé au développeur web pour permettre l’activation des fonctions de débogage, mais il peut servir à configurer certaines constantes. Entre autres il stocke les paramètres de connexion à la base de données, le jeu de caractères, le préfixe des tables, etc. Il est aussi possible de modifier le répertoire des médias, des plugins ou du thème afin d’augmenter la sécurité de l’installation.

Ce fichier de configuration se trouve à la racine du serveur dans le répertoire où est installé WordPress. On peut le modifier en se connectant via FTP sur le serveur avec Filezilla par exemple, puis télécharger le fichier wp-config.php en local sur son ordinateur. Un éditeur de texte est nécessaire pour éviter de changer le jeu de caractères du fichier qui est en UTF-8. On peut utiliser par exemple Notepad++, Atom, PHPStorm, VSCode, etc.

Modifier le comportement de WordPress avec le fichier wp-config.php

Édition du fichier wp-config.php

Juste à côté du fichier wp-config.php se trouve le fichier wp-config-sample.php qui est la version de base sans les valeurs des constantes. Se référer à ce fichier pour remettre par défaut la configuration globale du système. Après avoir récupéré le fichier wp-config.php du serveur et l’avoir ouvert avec un éditeur, il suffit d’ajouter son code en fin de fichier au niveau de la partie développeur.

/**
 * 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 vos essais.
 * Il est fortement recommandé que les développeurs d’extensions et
 * de thèmes se servent de WP_DEBUG dans leur environnement de
 * développement.
 *
 * Pour plus d’information sur les autres constantes qui peuvent être utilisées
 * pour le déboguage, rendez-vous sur le Codex.
 *
 * @link https://fr.wordpress.org/support/article/debugging-in-wordpress/
 */
define('WP_DEBUG', false);

La constante WP_DEBUG qu’il y a par défaut permet d’activer l’affichage des erreurs. À éviter sur un site en production pour ne pas que les alertes apparaissent. À partir de là on peut ajouter des constantes modifiant le comportement du système. Ci-dessous une liste des principales constantes de WordPress avec leur description.

Activer les erreurs dans le fichier log

Pour réaliser du débogage sur un site en production, il peut être nécessaire d’activer le WP_DEBUG, mais d’enregistrer les erreurs au lieu de les afficher. Cela va ralentir le système, mais permet au développeur web de corriger certaines fonctions. Pour cela il est nécessaire d’utiliser 2 constantes. La première WP_DEBUG_DISPLAY qui va cacher les erreurs à l’affichage et WP_DEBUG_LOG va activer l’enregistrement dans le log. Le fichier debug.log se trouve dans le répertoire wp-content sur le serveur.

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

La constante WP_DEBUG doit obligatoirement être activée pour enregistrer les erreurs dans le fichier log. Il suffit simplement de remettre WP_DEBUG à false pour arrêter l’enregistrement lors de la fin du développement.

Désactiver l’éditeur de fichier de WordPress

WordPress possède un éditeur de fichier qui se trouve dans Apparences > Éditeurs de fichiers afin de modifier les fichiers sources du thème. Si un utilisateur malveillant accède à cet éditeur, il peut commettre de grands dommages sur le site. Pour le désactiver, il suffit d’ajouter la constante DISALLOW_FILE_EDIT à la suite de WP_DEBUG.

define('DISALLOW_FILE_EDIT', true);

Augmenter la taille mémoire des scripts PHP

Selon l’hébergeur la mémoire allouée à une application PHP varie entre 64 et 512Mo. WordPress par défaut attribue 64Mo donc si on override pas cette valeur le système peut tourner d’une façon bridée. La plupart des professionnels et hébergeurs recommandent d’utiliser 256Mo pour pousser les développeurs à optimiser la mémoire d’une application PHP.

define('WP_MEMORY_LIMIT', '256M');

Réduire le nombre de révision des articles

À chaque édition d’une page, d’un article ou d’un produit WooCommerce, WordPress va dupliquer le contenu afin de créer une révision. Cela permet de revenir en arrière si besoin mais prend au final beaucoup de place en base de données. Réduire le nombre de révision entre 3 et 5 est un bon compromis pour alléger le site sur le long terme.

define('WP_POST_REVISIONS', 3);

Déplacer les répertoires de base de WordPress

Il est possible pour améliorer la sécurité de WordPress de modifier le chemin des répertoires du thème, des plugins et des uploads. Pour cela il y a plusieurs constantes et il faut indiquer à chacune d’elles le nouveau chemin sur le serveur ainsi que l’url.

// Déplacer le répertoire global wp-content
define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content' );
define( 'WP_CONTENT_URL', 'http://example/blog/wp-content');

// Déplacer le répertoire des plugins
define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content/plugins' );
define( 'WP_PLUGIN_URL', 'http://example/blog/wp-content/plugins');

// Déplacer le répertoire des uploads
define( 'UPLOADS', '/blog/wp-content/uploads' );

Désactiver les mises à jour automatiques

Ci-dessous un récapitulatif des principales constantes du fichier wp-config.php pour modifier le comportement par défaut du système. Avec la constante WP_AUTO_UPDATE_CORE il est aussi possible de désactiver les mises à jour automatiques de WordPress, du thème et des plugins.

define('WP_AUTO_UPDATE_CORE', false);
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);
define('WP_POST_REVISIONS', 3);
define('WP_ALLOW_MULTISITE', false);
define('DISALLOW_FILE_EDIT', true);
define('WP_MEMORY_LIMIT', '256M');

Pour plus d’informations, il y a la documentation de WordPress qui présente toutes les constantes du fichier wp-config.php avec leur explication. Les développeurs web doivent manipuler ce fichier avec précaution pour éviter des erreurs fatales sur un site en production.