Fichier wp-config.php
Le fichier wp-config.php
est l'un des fichiers de configuration principaux de WordPress. Il est utilisé pour définir des paramètres clés, y compris les informations de connexion à la base de données, les clés de salage (salts) pour la sécurité, et d'autres réglages avancés.
Nous détaillerons ici les réglages additionnels apportés à notre thème SNCF.
Variable d'environnement
Il est conseillé de définir la variable d'envrionnement nommée ISOMORPH_ENV
en fonction du type d'environnement ou vous trouverez, sur "DEV" ou sur "PROD". Celle-ci est utilisée à différents endroit du thème, nottament pour la gestion du cache et des ressources chargées.
// *************************************************************************
// WP ENVIRONNEMENT
// *************************************************************************
// Environnement de developpement
define('ISOMORPH_ENV','DEV');
// Environnement de production
define('ISOMORPH_ENV','PROD');
Gestion des erreurs
Dans votre environnement de développement, afin d'enregistrer et d'afficher les logs d'erreurs et d'avertissement, il est conseillé d'utiliser ces variables dans le fichier /wp-config.php
// *************************************************************************
// - WP DEBUG
// *************************************************************************
// Dev
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);
define('SCRIPT_DEBUG', true);
ini_set('error_reporting', E_ALL );
@ini_set('display_errors', 1);
// Prod
// define('WP_DEBUG', false);
// define('WP_DEBUG_LOG', false);
// define('WP_DEBUG_DISPLAY', false);
// define('SCRIPT_DEBUG', false);
// ini_set('display_errors','Off');
Dans votre environnement de production, afin de masquer tous logs par mesure de sécurité, il est conseillé d'utiliser ces variables dans le fichier /wp-config.php
// *************************************************************************
// - WP DEBUG
// *************************************************************************
// Dev
// define('WP_DEBUG', true);
// define('WP_DEBUG_LOG', true);
// define('WP_DEBUG_DISPLAY', true);
// define('SCRIPT_DEBUG', true);
// ini_set('error_reporting', E_ALL );
// @ini_set('display_errors', 1);
// Prod
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);
define('SCRIPT_DEBUG', false);
ini_set('display_errors','Off');
Sécurité
La configuration ci-dessous dans PHP renforce la sécurité des cookies de session, essentielle pour protéger les informations sensibles et prévenir certaines attaques web. Nous reviendrons sur ce sujet au chapitre dédiée à la sécurité.
// *************************************************************************
// COOKIES security
// *************************************************************************
@ini_set('session.cookie_httponly', '1');
@ini_set('session.cookie_secure', '1');
@ini_set('session.cookie_samesite', 'Lax');
session.cookie_httponly
à 1 limite l'accès aux cookies aux seules requêtes HTTP(S), bloquant les scripts côté client de lire le cookie.session.cookie_secure
à 1 garantit que les cookies sont transmis uniquement via HTTPS, prévenant le vol de cookie sur des connexions non sécurisées.session.cookie_samesite
à Lax permet une certaine flexibilité en autorisant les cookies pour les requêtes de navigation top-niveau d'origines différentes, offrant une protection contre CSRF tout en soutenant une bonne expérience utilisateur.
Serveur SMTP
Ici, nous configurons le plugin WP MAIL SMTP via le fichier wp-config.php
, afin d'utiliser les variables d'environnement docker.
Cela permet de garder une configuration différente sur chaque environnement, et de prévenir les erreurs liées aux migrations de base de données.
// *************************************************************************
// WP MAIL SMTP
// *************************************************************************
define( 'WPMS_LICENSE_KEY', '' );
define( 'WPMS_MAIL_FROM', 'mail@example.com' );
define( 'WPMS_MAIL_FROM_FORCE', true );
define( 'WPMS_MAIL_FROM_NAME', 'Example Name' );
define( 'WPMS_MAIL_FROM_NAME_FORCE', true );
define( 'WPMS_MAILER', 'smtp' );
define( 'WPMS_SET_RETURN_PATH', true );
define( 'WPMS_DO_NOT_SEND', true );
define( 'WPMS_SMTP_HOST', 'example' ); // The SMTP mail host.
define( 'WPMS_SMTP_PORT', 587 ); // The SMTP server port number.
define( 'WPMS_SSL', '' ); // Possible values '', 'ssl', 'tls' - note TLS is not STARTTLS.
define( 'WPMS_SMTP_AUTH', true ); // True turns it on, false turns it off.
define( 'WPMS_SMTP_USER', 'username' ); // SMTP authentication username, only used if WPMS_SMTP_AUTH is true.
define( 'WPMS_SMTP_PASS', 'password' ); // SMTP authentication password, only used if WPMS_SMTP_AUTH is true.
define( 'WPMS_SMTP_AUTOTLS', true ); // True turns it on, false turns it off.
define( 'WPMS_MAILER', 'smtp' );
WPML
Ici, nous configurons le plugin WPML via le fichier wp-config.php
, afin d'utiliser les variables d'environnement docker.
Comme pour le plugin WP MAIL SMTP, cela nous permet d'attribuer une clé d'authentifcation unique par domaine.
// *************************************************************************
// WPML
// *************************************************************************
define( 'OTGS_INSTALLER_SITE_KEY_WPML', 'your-site-key' );
Ressources
- WP MAIL SMTP, sécuriser sa configuration avec des variables : Documentation
- WPML, Automatiser sa configuration : WPML FAQ