Remplacer les paramètres de configuration
Cette rubrique explique comment dériver un nom de variable d’environnement en connaissant un chemin de configuration. Vous pouvez remplacer les paramètres de configuration d’Adobe Commerce à l’aide de variables d’environnement. Par exemple, vous pouvez remplacer la valeur de l’URL dynamique d’un processeur de paiements sur votre système de production.
Vous pouvez remplacer la valeur du paramètre de configuration any à l’aide de variables d’environnement. Toutefois, Adobe vous recommande de conserver des paramètres cohérents à l’aide du fichier de configuration partagé, config.php
, et du fichier de configuration spécifique au système, env.php
, comme indiqué dans la section Présentation générale du déploiement.
Variables d’environnement
Un nom de variable d’environnement est constitué de sa portée suivie de son chemin de configuration dans un format particulier. Les sections suivantes expliquent en détail comment déterminer un nom de variable.
Vous pouvez utiliser des variables pour l’un des éléments suivants :
-
Valeurs sensibles doivent être définies à l’aide de variables d’environnement ou de la commande
magento config:sensitive:set
. -
Les valeurs spécifiques au système doivent être définies à l’aide des éléments suivants :
- Variables d’environnement
- La commande
magento config:set
- Admin suivi de la commande
magento app:config:dump
Les chemins de configuration se trouvent dans :
Noms de variables
Le format général des noms de variables des paramètres système est le suivant :
<SCOPE>__<SYSTEM__VARIABLE__NAME>
<SCOPE>
peut être :
-
Portée globale (c’est-à-dire le paramètre global pour toutes portées)
Les variables de portée globale ont le format suivant :
CONFIG__DEFAULT__<SYSTEM__VARIABLE__NAME>
-
Une portée spécifique (c’est-à-dire que le paramètre affecte uniquement une vue de magasin ou un site web spécifié)
Par exemple, les variables d’étendue de vue de magasin ont le format suivant :
CONFIG__STORES__ <STORE_VIEW_CODE>__<SYSTEM__VARIABLE__NAME>
Pour plus d’informations sur les portées, voir :
<SYSTEM__VARIABLE__NAME>
est le chemin de configuration avec des caractères de soulignement doubles substitués à /
. Pour plus d’informations, voir Étape 2 : définition des variables système.
Format de variable
<SCOPE>
est séparé de <SYSTEM__VARIABLE__NAME>
par deux caractères de soulignement.
<SYSTEM__VARIABLE__NAME>
est dérivé du chemin de configuration d’un paramètre de configuration, qui est une chaîne délimitée par des /
qui identifie de manière unique un paramètre particulier. Remplacez chaque caractère /
dans le chemin de configuration par deux caractères de soulignement pour créer la variable système.
Si un chemin de configuration contient un caractère de soulignement, ce dernier reste dans la variable .
La liste complète des chemins de configuration figure à l’adresse :
Étape 1 : rechercher la valeur de la portée de l’affichage du site web ou du magasin
Cette section explique comment rechercher et définir des valeurs de configuration système par portée (vue de magasin ou site web). Pour définir des variables de portée globale, consultez Étape 2 : définir des variables d’affichage globales, de site web ou de magasin.
Les valeurs d’étendue proviennent des tableaux store
, store_group
et store_website
.
- Le tableau
store
spécifie les noms et les codes des vues de magasin - Le tableau
store_website
spécifie les noms et codes de site web
Vous pouvez également trouver les valeurs de code à l’aide de l’Administration.
Comment lire le tableau :
-
Path in Admin
la colonneLes valeurs avant la virgule sont des chemins d’accès dans la navigation d’administration. Les valeurs après la virgule sont des options dans le volet de droite.
-
Variable name
colonne correspond au nom de la variable d’environnement correspondante.Vous avez la possibilité de spécifier des valeurs système pour ces paramètres de configuration en tant que variables d’environnement si vous le souhaitez.
- Le nom de variable entier est toujours en MAJUSCULES
- Commencez un nom de variable par
CONFIG__
(notez deux caractères de soulignement) - La partie
<STORE_VIEW_CODE>
ou<WEBSITE_CODE>
d’un nom de variable se trouve dans la base de données Admin ou Commerce, comme indiqué dans les sections suivantes. - Vous pouvez trouver des
<SYSTEM__VARIABLE__NAME>
comme indiqué à l’Étape 2 : définir des variables d’affichage globales, de site web ou de magasin.
Recherche d’un site web ou d’une étendue d’affichage de magasin dans l’Admin
Le tableau suivant résume la manière de trouver un site web ou de stocker la valeur d’affichage dans Admin.
CONFIG__STORES__<STORE_VIEW_CODE>__<SYSTEM__VARIABLE__NAME>
CONFIG__WEBSITES__<WEBSITE_CODE>__<SYSTEM__VARIABLE__NAME>
Par exemple, pour rechercher une valeur de portée d’affichage de site web ou de magasin dans l’administrateur :
-
Connectez-vous à l’administrateur en tant qu’utilisateur autorisé à afficher des sites web.
-
Cliquez sur Stores > All Stores.
-
Cliquez sur le nom d’une vue de site web ou de magasin.
Le volet de droite s’affiche comme suit.
-
Le nom de l’étendue s’affiche dans le champ Code .
-
Passez à Étape 2 : définir des variables d’affichage globales, de site web ou de magasin.
Recherche d’un site web ou d’une étendue d’affichage de magasin dans la base de données
Pour obtenir ces valeurs à partir de la base de données :
-
Connectez-vous à votre système de développement en tant que propriétaire du système de fichiers si vous ne l’avez pas déjà fait.
-
Saisissez la commande suivante :
code language-bash mysql -u <database-username> -p
-
À l’invite de
mysql>
, saisissez les commandes suivantes dans l’ordre indiqué :code language-shell use <database-name>;
-
Utilisez les requêtes SQL suivantes pour trouver les valeurs appropriées :
code language-shell SELECT * FROM STORE; SELECT * FROM STORE_WEBSITE;
Voici un exemple :
code language-shell mysql> SELECT * FROM STORE_WEBSITE; +------------+-------+--------------+------------+------------------+------------+ | website_id | code | name | sort_order | default_group_id | is_default | +------------+-------+--------------+------------+------------------+------------+ | 0 | admin | Admin | 0 | 0 | 0 | | 1 | base | Main Website | 0 | 1 | 1 | | 2 | test1 | Test Website | 0 | 3 | 0 | +------------+-------+--------------+------------+------------------+------------+
-
Utilisez la valeur de la colonne
code
comme nom de l’étendue, et non la valeurname
.Par exemple, pour définir une variable de configuration pour le site web de test, utilisez le format suivant :
code language-shell CONFIG__WEBSITES__TEST1__<SYSTEM__VARIABLE__NAME>
d’où
<SYSTEM__VARIABLE__NAME>
provient la section suivante.
Étape 2 : définir des variables d’affichage globales, de site web ou de magasin
Cette section explique comment définir des variables système.
-
Pour définir des valeurs pour la portée globale (c’est-à-dire tous les sites web, magasins et vues de magasin), commencez le nom de la variable par
CONFIG__DEFAULT__
. -
Pour définir une valeur pour une vue de magasin ou un site web spécifique, commencez par définir le nom de la variable comme décrit dans la section Étape 1 : Rechercher la valeur de la portée:
CONFIG__WEBSITES
CONFIG__STORES
-
La dernière partie du nom de la variable est le chemin de configuration, qui est unique pour chaque paramètre de configuration.
Le tableau suivant présente quelques exemples de variables.
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_PORT
<SCOPE>__SHIPPING__ORIGIN__COUNTRY_ID
<SCOPE>__ADMIN__URL__CUSTOM
<SCOPE>__ADMIN__URL__CUSTOM_PATH
Exemples
Cette section explique comment trouver les valeurs de certaines variables d’exemple.
nom d’hôte du serveur Elasticsearch
Pour rechercher le nom de variable pour la minimisation globale d’HTML :
-
Déterminez la portée.
Comme il s’agit de la portée globale, le nom de la variable commence par
CONFIG__DEFAULT__
-
Le reste du nom de variable est
CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME
.Result : le nom de la variable est
CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME
Origine du pays d’expédition
Pour rechercher le nom de variable du pays d’expédition d’origine :
-
Déterminez la portée.
Recherchez la portée dans la base de données comme expliqué à l’étape 1 : rechercher la valeur de la portée de l’affichage du site web ou du magasin. (Vous pouvez également trouver la valeur dans Admin, comme indiqué dans le [tableau de l’étape 2 : définir des variables d’affichage globales, de site web ou de magasin](#step-2-set-global-website-or-store-view-variables.
Par exemple, la portée peut être
CONFIG__WEBSITES__DEFAULT
. -
Le reste du nom de variable est
SHIPPING__ORIGIN__COUNTRY_ID
.Result : le nom de la variable est
CONFIG__WEBSITES__DEFAULT__SHIPPING__ORIGIN__COUNTRY_ID
Utilisation des variables d’environnement
Définissez les valeurs de configuration comme variables en utilisant le tableau associé $_ENV
de PHP. Vous pouvez définir les valeurs dans n’importe quel script PHP qui s’exécute lorsque Commerce s’exécute.
index.php
ou pub/index.php
ne fonctionne pas toujours comme prévu, car différents points d’entrée de l’application peuvent être utilisés selon la configuration du serveur web. En plaçant des directives $_ENV
dans le fichier app/bootstrap.php
, quels que soient les points d’entrée de l’application, les directives $_ENV
s’exécutent toujours, car le fichier app/bootstrap.php
se charge dans le cadre de l’architecture Commerce.Voici un exemple de définition de deux valeurs $_ENV
:
$_ENV['CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME'] = 'http://search.example.com';
$_ENV['CONFIG__DEFAULT__GENERAL__STORE_INFORMATION__MERCHANT_VAT_NUMBER'] = '1234';
Un exemple détaillé est présenté dans Définir des valeurs de configuration à l’aide de variables d’environnement.
-
Pour utiliser les valeurs que vous définissez dans le tableau
$_ENV
, vous devez définirvariables_order = "EGPCS"
(Environnement, Get, Post, Cookie et Server) dans votre fichierphp.ini
. Pour plus de détails, voir Documentation PHP. -
Pour Adobe Commerce sur les infrastructures cloud, si vous tentez de remplacer les paramètres de configuration à l’aide de l’interface web de projet, vous devez ajouter le préfixe
env:
au nom de la variable. Par exemple :
