Gestion de la configuration du magasin
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 l’administrateur Commerce ou la commande CLI bin/magento config:set
, les modifications sont répercutées dans la base de données principale, en particulier dans la table core_config_data
. Ces paramètres remplacent les configurations par défaut stockées dans le fichier config.xml
.
Les paramètres de magasin, qui font référence aux configurations de la section Admin Magasins > Paramètres > Configuration , sont stockés dans les fichiers de configuration de 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 des remplacements spécifiques au système et des paramètres sensibles qui doivent NOT être stockés dans le contrôle source. Voir la référence env.php dans le Guide de configuration.
La gestion des configurations 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. Adobe Commerce sur le projet d’infrastructure cloud inclut 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 de pipeline.
Schéma de remplacement de configuration
Toutes les configurations système sont définies lors des phases de création et de déploiement selon le schéma de remplacement suivant :
- Si une variable d’environnement existe, utilisez la configuration personnalisée et ignorez la configuration par défaut.
- Si aucune variable d’environnement n’existe, utilisez la configuration 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 que
MAGENTO_CLOUD_RELATIONSHIPS
ne contient pas de paire nom-valeur, supprimez toutes les configurations personnalisées et utilisez les valeurs de la configuration par défaut.
Pour résumer, les variables d’environnement remplacent toutes les autres valeurs.
Si le même paramètre est configuré à plusieurs endroits, l’application se base sur la hiérarchie de configuration suivante pour déterminer la valeur à appliquer à l’environnement :
Méthode
variables d'environnement
.magento.app.yaml
variables
du fichier .magento.app.yaml
. Spécifiez ici les valeurs afin d’assurer 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 des variables d’environnement ou de l’interface de ligne de commande. Voir Données sensibles. Le fichier env.php
est not inclus dans le contrôle source.app/etc/config.php
app:config:dump
. Les valeurs de configuration partagées sont ajoutées à config.php
. Définissez la configuration partagée depuis l’administrateur ou à l’aide de l’interface de ligne de commande. Le fichier config.php
est inclus dans le contrôle source.config.xml
config.xml
pour un module. Si Adobe Commerce ne trouve aucune valeur définie par l’une des méthodes précédentes, elle revient à la valeur par défaut, le cas échéant.Dépôt de 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" vers 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. En verrouillant uniquement les valeurs que vous mettez à jour, vous avez également la garantie 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, notamment 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’un vidage de configuration complet, 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 vers 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 d’interface en ligne de commande : bin/magento config:sensitive:set
. Voir Paramètres sensibles et spécifiques à l’environnement dans le guide Extensions PHP Commerce pour savoir comment désigner les paramètres de configuration comme étant sensibles ou spécifiques au système.
Consultez la liste des paramètres sensibles ou spécifiques au systèmedans le Guide de configuration.
Performances SCD
Selon la taille de votre magasin, vous pouvez déployer un grand nombre de fichiers de contenu statique. Normalement, le contenu statique est déployé 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é Configuration Management après avoir vidé les configurations, vous devez déplacer les variables SCD_* de l’étape de déploiement vers l’étape de création pour 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é Configuration Management :
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émarrage : une branche de développement active
- Pro : branche active dans l’environnement d’intégration
Ces configurations n’incluent pas les produits réels, sauf si vous envisagez de vider la base de données de cet environnement vers les environnements d’évaluation et de production. En règle générale, les bases de données de développement n’incluent pas vos données de magasin complètes.
-
Sur votre poste de travail local, modifiez le répertoire de votre projet.
-
Créez un vidage local de la base distante.
code language-bash magento-cloud db:dump
-
Ajoutez, validez et poussez les 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’administrateur de l’environnement mis à jour pour vérifier les paramètres. Continuez à fusionner toutes les configurations supplémentaires aux environnements d’évaluation et de production, si nécessaire.
Mise à jour des configurations
Lorsque vous modifiez votre environnement par l’intermédiaire de l’administrateur 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 est non recommandé. Le fichier permet de préserver 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 les configurations et paramètres spécifiques requis pour créer et déployer des processus.Restauration 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. L’exemple suivant montre les fichiers BAK (sauvegarde) et PHP (fichiers originaux) 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 les fichiers de configuration :
-
Sur votre poste de travail local, 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
-
Restaurer les fichiers de sauvegarde.
code language-bash ./vendor/bin/ece-tools backup:restore
Migration des anciennes configurations
Si vous effectuez une mise à niveau vers Adobe Commerce sur l’infrastructure cloud 2.2 ou une version ultérieure, vous souhaiterez peut-être 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 diffèrent, 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, puis complétez son ajout à Git. -
Déployez dans vos environnements.
Cette migration n’est effectuée 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 magasin sans suivre un processus complexe d'import et d'export de configuration, si vous avez activé SCD_ON_DEMAND. Vous pouvez mettre à jour les paramètres régionaux à l’aide de l’Admin.
Vous pouvez ajouter un autre paramètre régional à l’environnement d’évaluation ou de production en activant SCD_ON_DEMAND
dans une branche d’intégration, en générant un fichier config.php
mis à jour avec les nouvelles informations de paramètres régionaux et en copiant 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 distante dans votre répertoire d’environnement local.
code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
Ajoutez, validez et poussez les modifications de code pour mettre à jour un environnement distant.