Gestion de la configuration de la boutique
Les configurations par défaut de votre magasin sont stockées dans un config.xml
pour le module approprié. Lorsque vous modifiez les paramètres dans Commerce Admin ou la commande CLI bin/magento config:set
, les modifications sont répercutées dans la base de données principale, en particulier dans le tableau core_config_data
. Ces paramètres remplacent les configurations par défaut stockées dans le fichier config.xml
.
Les paramètres de la boutique, qui font référence aux configurations de la section Admin Magasins > Paramètres > Configuration, sont stockés dans les fichiers de configuration du déploiement en fonction du type de configuration :
app/etc/config.php
: paramètres de configuration pour les magasins, les sites web, les modules ou les extensions, l’optimisation des fichiers statiques et les valeurs système liées au déploiement de contenu statique. Voir la référence config.php dans le Guide de configuration.app/etc/env.php
: valeurs pour les remplacements spécifiques au système et les paramètres sensibles qui ne doivent PAS être stockés dans le contrôle de code source. Voir la référence env.php dans le Guide de configuration.
La gestion de la configuration permet de déployer des paramètres de magasin cohérents dans vos environnements avec un temps d’arrêt minimal à l’aide du déploiement du pipeline. Le projet d’infrastructure d’Adobe Commerce sur le cloud comprend le serveur de génération, les scripts de génération et de déploiement, ainsi que les environnements de déploiement conçus en tenant compte de la stratégie de déploiement du pipeline.
Schéma de remplacement de configuration
Toutes les configurations système sont définies au cours des phases de création et de déploiement selon le schéma de remplacement suivant :
- S’il existe une variable d’environnement , utilisez la configuration personnalisée et ignorez la configuration par défaut.
- Si une variable d’environnement n’existe pas, utilisez la configuration à partir d’une paire nom-valeur
MAGENTO_CLOUD_RELATIONSHIPS
dans le fichier.magento.app.yaml
. Ignorez la configuration par défaut. - Si une variable d’environnement n’existe pas et
MAGENTO_CLOUD_RELATIONSHIPS
ne contient pas de paire nom-valeur, supprimez toute configuration personnalisée et utilisez les valeurs de la configuration par défaut.
En résumé, les variables d’environnement remplacent toutes les autres valeurs.
Si le même paramètre est configuré à plusieurs endroits, l’application s’appuie sur la hiérarchie de configuration suivante pour déterminer la valeur à appliquer à l’environnement :
Method
variables d’environnement
.magento.app.yaml
variables
du fichier .magento.app.yaml
. Spécifiez les valeurs ici pour garantir une configuration cohérente dans tous les environnements. Ne spécifiez pas de valeurs sensibles dans le fichier .magento.app.yaml
. Voir Paramètres de l’application.app/etc/env.php
app:config:dump
. Définissez les valeurs sensibles et spécifiques au système à l’aide de variables d’environnement ou de l’interface de ligne de commande. Voir Données sensibles. Le fichier env.php
n est pas inclus contrôle de code source.app/etc/config.php
app:config:dump
. Les valeurs de configuration partagées sont ajoutées aux config.php
. Définissez la configuration partagée depuis l’interface de ligne de commande de l’administrateur ou en utilisant l’interface de ligne de commande. Le fichier config.php
est inclus dans le contrôle de code source.config.xml
config.xml
d’un module. Si Adobe Commerce ne trouve aucune valeur définie par l’une des méthodes précédentes, il revient à la valeur par défaut, si elle est définie.Image mémoire de la configuration
Vous pouvez utiliser la commande ece-tools
suivante pour générer un fichier config.php
contenant toutes les configurations de magasin actuelles :
./vendor/bin/ece-tools config:dump
Les données « vidées » dans le fichier app/etc/config.php
deviennent verrouillées, ce qui signifie que le champ correspondant dans l’administrateur Commerce devient lecture seule. Le fichier config.php
comprend uniquement les paramètres que vous configurez. Les valeurs par défaut ne sont pas verrouillées. Le verrouillage uniquement des valeurs que vous mettez à jour garantit également que toutes les extensions utilisées dans les environnements d’évaluation et de production ne sont pas rompues en raison de configurations en lecture seule, en particulier Fastly.
ece-tools config:dump
ne récupère pas les configurations détaillées des modules, tels que B2B. Si vous avez besoin d’une image mémoire de configuration complète, utilisez la commande app:config:dump
, mais cette commande verrouille les valeurs de configuration en lecture seule.Données sensibles
Toutes les configurations sensibles sont exportées dans le fichier app/etc/env.php
lorsque vous utilisez la commande bin/magento app:config:dump
. Vous pouvez définir des valeurs sensibles à l’aide de la commande CLI : bin/magento config:sensitive:set
. Voir Paramètres sensibles et spécifiques à un environnement dans le guide Extensions PHP Commerce pour savoir comment désigner les paramètres de configuration comme étant sensibles ou spécifiques à un système.
Consultez une liste des paramètres sensibles ou spécifiques au système dans le guide de configuration.
Performances SCD
Selon la taille de votre boutique, vous pouvez avoir un grand nombre de fichiers de contenu statique à déployer. Normalement, le contenu statique se déploie pendant la phase de déploiement lorsque l’application est en mode de maintenance. La configuration la plus optimale consiste à générer du contenu statique pendant la phase de création. Voir Choix d’une stratégie de déploiement.
Si vous avez activé la gestion de la configuration après avoir vidé les configurations, vous devez déplacer les variables SCD_* de l’étape de déploiement à l’étape de création afin d’activer correctement la génération de contenu statique pendant la phase de création. Voir Variables d’environnement.
Avant la gestion de la configuration :
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
SCD_STRATEGY: compact
SCD_MATRIX:
...
REDIS_USE_SLAVE_CONNECTION: 1
Après avoir activé la gestion de la configuration :
Déplacez les variables SCD_* vers l’étape de création :
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
REDIS_USE_SLAVE_CONNECTION: 1
build:
SCD_STRATEGY: compact
SCD_MATRIX:
...
Procédure de gestion des paramètres
Voici un aperçu général de ce processus :
Pour configurer votre magasin et générer un fichier de configuration :
-
Effectuez toutes les configurations pour vos magasins dans l’Admin pour l’un des environnements :
- Démarreur : branche de développement active
- Pro : branche active de l’environnement d’intégration
Ces configurations n’incluent pas les produits réels, sauf si vous prévoyez de vider la base de données de cet environnement vers des environnements d’évaluation et de production. En règle générale, les bases de données de développement n’incluent pas l’ensemble des données de votre magasin.
-
Sur votre station de travail locale, accédez au répertoire du projet.
-
Créez une image mémoire locale de la base de données distante.
code language-bash magento-cloud db:dump
-
Ajouter, valider et intégrer des modifications de code pour mettre à jour un environnement distant.
code language-bash git add app/etc/config.php
code language-bash git commit -m "Add system-specific configuration"
code language-bash git push origin <branch-name>
Une fois le déploiement terminé, connectez-vous à l’administration de l’environnement mis à jour pour vérifier les paramètres. Continuez à fusionner les configurations supplémentaires dans les environnements d’évaluation et de production, si nécessaire.
Mettre à jour les configurations
Lorsque vous modifiez votre environnement par l’intermédiaire de l’Administration et exécutez à nouveau la commande, de nouvelles configurations sont ajoutées au code dans le fichier config.php
.
config.php
dans les environnements d’évaluation et de production, il n’est pas recommandé. Le fichier permet de conserver la cohérence de toutes les configurations dans tous les environnements. Ne supprimez jamais le fichier config.php
pour le recréer. La suppression du fichier peut supprimer des configurations et des paramètres spécifiques requis pour les processus de génération et de déploiement.Restaurer des fichiers de configuration
Des copies des fichiers app/etc/env.php
et app/etc/config.php
d’origine ont été créées pendant le processus de déploiement et stockées dans le même dossier. Vous trouverez ci-dessous les fichiers BAK (fichiers de sauvegarde) et PHP (fichiers d'origine) dans le même dossier app/etc
:
...
config.php.bak
di.xml
env.php.bak
vendor_path.php
config.php
db_schema.xml
env.php
...
Les anciennes configurations utilisaient le fichier app/etc/config.local.php
. Voir Migration des anciennes configurations.
Pour restaurer des fichiers de configuration :
-
Sur votre station de travail locale, utilisez SSH pour vous connecter au projet et à l’environnement distants.
code language-bash magento-cloud ssh
-
Vérifiez l’emplacement et la disponibilité des fichiers de sauvegarde.
code language-bash ./vendor/bin/ece-tools backup:list
Exemple de réponse :
code language-none The list of backup files: app/etc/env.php app/etc/config.php
-
Restaurez les fichiers de sauvegarde.
code language-bash ./vendor/bin/ece-tools backup:restore
Migration des configurations plus anciennes
Si vous effectuez une mise à niveau vers Adobe Commerce sur une infrastructure cloud 2.2 ou ultérieure, vous pouvez migrer les paramètres du fichier config.local.php
vers votre nouveau fichier config.php
. Si les paramètres de configuration de votre administrateur correspondent au contenu du fichier, suivez les instructions pour générer et ajouter le fichier config.php
.
S’ils sont différents, vous pouvez ajouter du contenu du fichier config.local.php
à votre nouveau fichier config.php
:
-
Suivez les instructions pour générer le fichier
config.php
. -
Ouvrez le fichier
config.php
et supprimez la dernière ligne. -
Ouvrez le fichier
config.local.php
et copiez le contenu. -
Collez le contenu dans le fichier
config.php
, enregistrez-le et terminez de l’ajouter à Git. -
Effectuez un déploiement dans vos environnements.
Vous ne terminez cette migration qu’une seule fois. Après la migration, utilisez le fichier config.php
.
Modifier les paramètres régionaux
Vous pouvez modifier les paramètres régionaux de votre boutique sans suivre un processus complexe d’importation et d’exportation de configurations, si vous avez activé SCD_ON_DEMAND. Vous pouvez mettre à jour les paramètres régionaux à l’aide de l’Administration.
Vous pouvez ajouter d’autres paramètres régionaux à l’environnement d’évaluation ou de production en activant SCD_ON_DEMAND
dans une branche d’intégration, générer un fichier config.php
mis à jour avec les nouvelles informations de paramètres régionaux et copier le fichier de configuration dans l’environnement cible.
-
Dans l’environnement d’intégration, activez la variable
SCD_ON_DEMAND
à l’aide du fichier.magento.env.yaml
. -
Ajoutez les paramètres régionaux nécessaires à l’aide de votre administrateur.
-
Utilisez SSH pour vous connecter à l’environnement distant et générer le fichier
/app/etc/config.php
contenant tous les paramètres régionaux.code language-bash ssh <SSH-URL> "./vendor/bin/ece-tools config:dump"
-
Copiez le nouveau fichier de configuration de l’environnement d’intégration distant dans votre répertoire d’environnement local.
code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
Ajouter, valider et intégrer des modifications de code pour mettre à jour un environnement distant.