Détails techniques
Cette rubrique présente les détails techniques d’implémentation du déploiement de pipeline dans Commerce 2.2 et versions ultérieures. Les améliorations peuvent être divisées en plusieurs domaines :
Cette rubrique présente également le workflow recommandé pour le déploiement de pipeline et fournit quelques exemples pour vous aider à comprendre son fonctionnement.
Avant de commencer, passez en revue les Conditions préalables pour les systèmes de développement, de version et de production.
Gestion de la configuration
Pour vous permettre de synchroniser et de gérer la configuration de vos systèmes de développement et de production, utilisez le schéma de remplacement suivant.
Comme le montre le diagramme, les valeurs de configuration sont utilisées dans l'ordre suivant :
- Les variables d’environnement, si elles existent, remplacent toutes les autres valeurs.
- À partir des fichiers de configuration partagés
env.php
etconfig.php
. Les valeurs deenv.php
remplacent celles deconfig.php
. - À partir des valeurs stockées dans la base.
- Si aucune valeur n'existe dans l'une de ces sources, la valeur par défaut ou NULL est utilisée.
Gestion de la configuration partagée
La configuration partagée est stockée dans app/etc/config.php
, qui doit se trouver dans le contrôle de code source.
Définissez la configuration partagée dans Admin sur votre système de développement (ou Adobe Commerce sur l’infrastructure cloud intégration) et écrivez la configuration dans config.php
à l’aide de la commande magento app:config:dump
.
Gestion de la configuration spécifique au système
La configuration spécifique au système est stockée dans app/etc/env.php
, qui ne doit pas se trouver dans le contrôle de code source.
Définissez la configuration spécifique au système dans l’Admin de votre système de développement (ou Adobe Commerce sur l’intégration d’infrastructure cloud) et écrivez la configuration dans env.php
à l’aide de la commande magento app:config:dump
.
Cette commande écrit également les paramètres sensibles dans env.php
.
Gestion de la configuration sensible
La configuration sensible est également stockée dans app/etc/env.php
.
Vous pouvez gérer la configuration sensible de l’une des manières suivantes :
- Variables d’environnement
- Enregistrez la configuration sensible dans
env.php
sur votre système d’exploitation à l’aide de la commandemagento config:set:sensitive
Paramètres de configuration verrouillés dans l’administrateur
Tous les paramètres de configuration de config.php
ou env.php
sont verrouillés dans l’administration. En d’autres termes, ces paramètres ne peuvent pas être modifiés dans l’administration.
Utilisez la commande magento config:set
ou magento config:set --lock
pour modifier les paramètres des fichiers config.php
ou env.php
.
Administrateur Commerce
L’administrateur présente le comportement suivant en mode de production :
-
Vous ne pouvez pas activer ni désactiver les types de cache dans l’Administration
-
Les paramètres du développeur ne sont pas disponibles (Magasins > Paramètres > Configuration > Avancé > Développeur), notamment :
-
Minimiser CSS, JavaScript et HTML
-
Fusion de CSS et JavaScript
-
Compilation LESS côté serveur ou côté client
-
Traductions intégrées
-
Comme nous l’avons vu précédemment, tout paramètre de configuration dans
config.php
ouenv.php
est verrouillé et ne peut pas être modifié dans Admin. -
Vous pouvez modifier les paramètres régionaux d’administration uniquement pour les langues utilisées par les thèmes déployés
La figure suivante présente un exemple de la liste Paramètres du compte > Paramètres régionaux de l’interface dans l’interface d’administration, qui n’affiche que deux paramètres régionaux déployés :
-
-
Vous ne pouvez pas modifier les configurations des paramètres régionaux pour une étendue à l’aide de l’administrateur.
Nous vous recommandons d’apporter ces modifications avant de passer en mode Production.
Vous pouvez toujours configurer le paramètre régional à l’aide de variables d’environnement ou de la commande d’interface de ligne de commande
config:set
avec le chemingeneral/locale/code
.
Installation et suppression de cron
Dans la version 2.2, pour la première fois, nous vous aidons à configurer votre tâche cron en fournissant la commande magento cron:install
. Cette commande configure un crontab en tant qu’utilisateur exécutant la commande.
Vous pouvez également supprimer crontab à l’aide de la commande magento cron:remove
.
Workflow de déploiement de pipeline recommandé
Le diagramme suivant montre comment nous vous recommandons d’utiliser le déploiement de pipeline pour gérer la configuration.
Système de développement
Sur votre système de développement, vous apportez des modifications à la configuration dans l’Administration et générez la configuration partagée, app/etc/config.php
et la configuration spécifique au système, app/etc/env.php
. Vérifiez le code Commerce et la configuration partagée dans le contrôle de code source et envoyez-le au serveur de génération.
Vous devez également installer des extensions et personnaliser le code Commerce sur le système de développement.
Sur votre système de développement :
-
Définissez la configuration dans Admin.
-
Utilisez la commande
magento app:config:dump
pour écrire la configuration dans le système de fichiers.app/etc/config.php
est la configuration partagée, qui contient tous les paramètres à l’exception paramètres sensibles et spécifiques au système. Ce fichier doit se trouver dans le contrôle de code source.app/etc/env.php
est la configuration spécifique au système, qui contient des paramètres propres à un système particulier (par exemple, les noms d’hôtes et les numéros de port). Ce fichier ne doit pas se trouver dans le contrôle de code source.
-
Ajoutez le code modifié et la configuration partagée au contrôle de code source.
-
Pour supprimer le code php généré et les fichiers de ressources statiques lors du développement, exécutez les commandes suivantes :
code language-bash rm -r var/view_preprocessed/* rm -r pub/static/*/* rm -r generated/*/*
Après avoir exécuté les commandes pour effacer les ressources, Commerce génère des fichiers de travail.
.htacces
dans le dossier generated
ou pub
peut entraîner des problèmes.Créer un système
Le système de build compile le code et génère des fichiers d’affichage statiques pour les thèmes enregistrés dans Commerce. Il n’a pas besoin d’une connexion à la base de données Commerce ; seule la base de code Commerce est nécessaire.
Sur votre système de génération :
- Extrayez le fichier de configuration partagé du contrôle de code source.
- Utilisez la commande
magento setup:di:compile
pour compiler le code. - Utilisez la commande
magento setup:static-content:deploy -f
pour mettre à jour les fichiers d’affichage de fichiers statiques. - Vérifiez les mises à jour dans le contrôle de code source.
Système de production
Sur votre système de production (c’est-à-dire votre boutique en ligne), vous extrayez les ressources générées et les mises à jour de code du contrôle de code source et définissez des paramètres de configuration sensibles et spécifiques au système à l’aide de la ligne de commande ou des variables d’environnement.
Sur votre système de production :
- Démarrez le mode de maintenance.
- Extrayez le code et les mises à jour de configuration du contrôle de code source.
- Si vous utilisez Adobe Commerce, arrêtez les programmes de travail en file d’attente.
- Utilisez la commande
magento app:config:import
pour importer les modifications de configuration dans le système d’exploitation. - Si vous avez installé des composants qui ont modifié le schéma de la base de données, exécutez
magento setup:upgrade --keep-generated
pour mettre à jour le schéma et les données de la base de données, en préservant les fichiers statiques générés. - Pour définir des paramètres spécifiques au système, utilisez la commande
magento config:set
ou des variables d’environnement. - Pour définir des paramètres sensibles, utilisez la commande
magento config:sensitive:set
ou des variables d’environnement. - Nettoyez le cache (opération également appelée vidage).
- Terminez le mode de maintenance.
Commandes de gestion de la configuration
Nous fournissons les commandes suivantes pour vous aider à gérer la configuration :
-
magento app:config:dump
d’écrire les paramètres de configuration d’administration dansconfig.php
etenv.php
(sauf pour les paramètres sensibles) -
magento config:set
pour définir les valeurs des paramètres spécifiques au système sur le système d’exploitation.Utilisez l’option
--lock
facultative pour verrouiller l’option dans l’Administration (c’est-à-dire rendre le paramètre non modifiable). Si un paramètre est déjà verrouillé, utilisez l’option--lock
pour le modifier. -
magento config:sensitive:set
de définir les valeurs des paramètres sensibles sur le système d’exploitation. -
magento app:config:import
d’importer les modifications de configuration deconfig.php
etenv.php
dans le système d’exploitation.
Exemples de gestion de la configuration
Cette section présente des exemples de gestion de la configuration afin que vous puissiez voir comment les modifications sont apportées à config.php
et env.php
.
Modifier le paramètre régional par défaut
Cette section affiche la modification apportée à config.php
lorsque vous modifiez l’unité de poids par défaut à l’aide de l’Administration (Magasins > Paramètres > Configuration > Général > Général > Options des paramètres régionaux).
Après avoir effectué la modification dans l’administrateur, exécutez bin/magento app:config:dump
pour écrire la valeur dans config.php
. La valeur est écrite dans le tableau general
sous locale
, comme le montre le fragment de code suivant d’config.php
:
'general' =>
array (
'locale' =>
array (
'code' => 'en_US',
'timezone' => 'America/Chicago',
'weight_unit' => 'kgs'
)
)
Modification de plusieurs paramètres de configuration
Cette section aborde la modification des configurations suivantes :
- Ajout d’une vue de site web, de magasin et de magasin (Magasins > Paramètres > Tous les magasins)
- Modification du domaine d’e-mail par défaut (Magasins > Paramètres > Configuration > Clients > Configuration client)
- Définition du nom d'utilisateur et du mot de passe de l'API PayPal (Magasins > Paramètres > Configuration > Ventes > Modes de paiement > PayPal > Paramètres PayPal obligatoires)
Une fois la modification effectuée dans l’administration, exécutez bin/magento app:config:dump
sur votre système de développement. Cette fois, toutes vos modifications ne sont pas écrites dans config.php
; en fait, seuls le site web, le magasin et la vue du magasin sont écrits dans ce fichier, comme le montrent les fragments de code ci-dessous.
config.php
config.php
contient :
- Modifications apportées à la vue du site web, du magasin et du magasin.
- Paramètres de moteur de recherche non spécifiques au système
- Paramètres PayPal non sensibles
- Commentaires qui vous informent des paramètres sensibles omis dans
config.php
Tableau websites
:
'new' =>
array (
'website_id' => '2',
'code' => 'new',
'name' => 'New website',
'sort_order' => '0',
'default_group_id' => '2',
'is_default' => '0',
),
Tableau groups
:
2 =>
array (
'group_id' => '2',
'website_id' => '2',
'code' => 'newstore',
'name' => 'New store',
'root_category_id' => '2',
'default_store_id' => '2',
),
Tableau stores
:
'newview' =>
array (
'store_id' => '2',
'code' => 'newview',
'website_id' => '2',
'group_id' => '2',
'name' => 'New store view',
'sort_order' => '0',
'is_active' => '1',
),
Tableau payment
:
'payment' =>
array (
'paypal_express' =>
array (
'active' => '0',
'in_context' => '0',
'title' => 'PayPal Express Checkout',
'sort_order' => NULL,
'payment_action' => 'Authorization',
'visible_on_product' => '1',
'visible_on_cart' => '1',
'allowspecific' => '0',
'verify_peer' => '1',
'line_items_enabled' => '1',
'transfer_shipping_options' => '0',
'solution_type' => 'Mark',
'require_billing_address' => '0',
'allow_ba_signup' => 'never',
'skip_order_review_step' => '1',
),
env.php
Le paramètre de configuration par défaut spécifique au système de domaine d’e-mail est écrit dans app/etc/env.php
.
Les paramètres PayPal ne sont écrits dans aucun fichier car la commande bin/magento app:config:dump
n'écrit pas de paramètres sensibles. Vous devez définir les paramètres PayPal sur le système d’exploitation à l’aide des commandes suivantes :
bin/magento config:sensitive:set paypal/wpp/api_username <username>
bin/magento config:sensitive:set paypal/wpp/api_password <password>