Conditions préalables à la mise à niveau
Il est important de comprendre ce qui est nécessaire pour exécuter Adobe Commerce. Vous devez d’abord examiner la configuration requise pour la version vers laquelle vous envisagez d’effectuer la mise à niveau.
Après avoir examiné la configuration requise, vous devez remplir les conditions préalables suivantes avant de mettre à niveau votre système :
- Mettre à jour tous les logiciels
- Vérification de l’installation d’un moteur de recherche pris en charge
- Conversion du format de tableau de la base de données
- Définition de la limite des fichiers ouverts
- Vérification de l’exécution des tâches cron
- Set
DATA_CONVERTER_BATCH_SIZE
- Vérification des autorisations du système de fichiers
- Définition de la racine du répertoire
pub/
- Installation du module externe de mise à jour du compositeur
Mettre à jour tous les logiciels
La configuration requise décrit exactement les versions de logiciels tiers qui ont été testées avec les versions d’Adobe Commerce.
Veillez à mettre à jour toutes les exigences et dépendances du système dans votre environnement. Voir PHP 7.4, PHP 8.0, PHP 8.1 et paramètres PHP requis.
.magento.app.yaml
et services.yaml
mis à jour et la version PHP dans le ticket. La mise à jour de votre projet peut prendre jusqu’à 48 heures pour que l’équipe chargée de l’infrastructure du cloud. Voir Logiciels et services pris en charge.Vérification de l’installation d’un moteur de recherche pris en charge
Adobe Commerce nécessite l’installation d’Elasticsearch ou d’OpenSearch pour pouvoir utiliser le logiciel.
Si vous effectuez une mise à niveau de la version 2.3.x vers la version 2.4, vous devez vérifier si vous utilisez MySQL, un Elasticsearch ou une extension tierce comme moteur de recherche de catalogue dans votre instance 2.3.x. Le résultat détermine ce que vous devez faire avant la mise à niveau vers la version 2.4.
Si vous mettez à niveau des versions de correctif dans les lignes de version 2.3.x ou 2.4.x, si Elasticsearch 7.x est déjà installé, vous pouvez éventuellement migrer vers OpenSearch.
Vous pouvez utiliser la ligne de commande ou l’ administrateur pour déterminer votre moteur de recherche de catalogue :
-
Saisissez la commande
bin/magento config:show catalog/search/engine
. La commande renvoie une valeur demysql
,elasticsearch
(qui indique que l’Elasticsearch 2 est configuré),elasticsearch5
,elasticsearch6
,elasticsearch7
ou une valeur personnalisée, indiquant que vous avez installé un moteur de recherche tiers. Pour les versions antérieures à la version 2.4.6, utilisez la valeurelasticsearch7
pour le moteur Elasticsearch 7 ou OpenSearch. Pour les versions 2.4.6 et ultérieures, utilisez la valeuropensearch
pour le moteur OpenSearch. -
Depuis l’administrateur, vérifiez la valeur du champ Stores > Settings > Configuration > Catalog > Catalog > Catalog Search > Search Engine .
Les sections suivantes décrivent les actions que vous devez entreprendre avant de passer à la version 2.4.0.
MySQL
Depuis la version 2.4, MySQL n’est plus un moteur de recherche de catalogue pris en charge. Vous devez installer et configurer Elasticsearch ou OpenSearch avant la mise à niveau. Utilisez les ressources suivantes pour vous aider à accomplir ce processus :
- Installation et configuration de l’Elasticsearch
- Installation de l’Elasticsearch
- Configurez nginx ou Apache pour utiliser votre moteur de recherche.
- Configurer Commerce pour utiliser Elasticsearch et réindexer
Certains moteurs de recherche de catalogue tiers s’exécutent sur le moteur de recherche Adobe Commerce. Contactez votre fournisseur pour déterminer si vous devez mettre à jour votre extension.
MariaDB
La réindexation sur MariaDB 10.4 et 10.6 prend plus de temps que les versions précédentes de MariaDB ou de MySQL. Pour accélérer la réindexation, nous vous recommandons de définir les paramètres de configuration MariaDB suivants :
Si vous constatez une dégradation des performances non liée à l’indexation après la mise à niveau vers MariaDB 10.6, envisagez d’activer le paramètre --query-cache-type
. Par exemple, --query-cache-type=ON
.
Avant de mettre à niveau Adobe Commerce sur des projets d’infrastructure cloud, vous devrez peut-être également mettre à niveau MariaDB (voir Bonnes pratiques de mise à niveau de MariaDB).
Par exemple :
- Adobe Commerce 2.4.6 avec MariaDB version 10.5.1 ou ultérieure
- Adobe Commerce 2.3.5 avec MariaDB version 10.3 ou antérieure
Outre ces recommandations, consultez l’administrateur de la base de données pour configurer les paramètres suivants :
Moteur de recherche
Vous devez installer et configurer Elasticsearch 7.6 ou version ultérieure ou OpenSearch 1.2 avant de passer à la version 2.4.0. Adobe ne prend plus en charge Elasticsearch 2.x, 5.x et 6.x. La configuration du moteur de recherche du Guide de configuration décrit les tâches que vous devez effectuer après la mise à niveau de l’Elasticsearch vers une version prise en charge.
Pour obtenir des instructions complètes sur la sauvegarde de vos données, la détection des problèmes de migration potentiels et le test des mises à niveau avant le déploiement en production, reportez-vous à la section Mise à niveau d’Elasticsearch . Selon votre version actuelle d’Elasticsearch, un redémarrage complet de la grappe peut être nécessaire ou non.
Elasticsearch requiert Java Development Kit (JDK) 1.8 ou version ultérieure. Voir Installation du Java Software Development Kit (JDK) pour vérifier quelle version de JDK est installée.
OpenSearch
OpenSearch est un double open source de 7.10.2 Elasticsearch, suite à un changement de licence de l’Elasticsearch. Les versions suivantes d’Adobe Commerce prennent en charge OpenSearch :
- 2.4.6 (OpenSearch possède un module et des paramètres distincts)
- 2.4.5
- 2.4.4
- 2.4.3-p2
- 2.3.7-p3
Vous pouvez migrer d'Elasticsearch vers OpenSearch uniquement si vous effectuez une mise à niveau vers une version d'Adobe Commerce répertoriée ci-dessus (ou supérieure).
OpenSearch requiert JDK 1.8 ou version ultérieure. Voir Installation du Java Software Development Kit (JDK) pour vérifier quelle version de JDK est installée.
La configuration du moteur de recherche décrit les tâches que vous devez effectuer après avoir modifié les moteurs de recherche.
Elasticsearch de mise à niveau
La prise en charge d’Elasticsearch 8.x a été introduite dans Adobe Commerce 2.4.6. Les instructions suivantes présentent un exemple de mise à niveau d’Elasticsearch de 7.x vers 8.x :
-
Mettez à niveau le serveur Elasticsearch 7.x vers 8.x et assurez-vous qu’il est en cours d’exécution. Voir la documentation Elasticsearch.
-
Activez le champ
id_field_data
en ajoutant la configuration suivante à votre fichierelasticsearch.yml
et en redémarrant le service Elasticsearch 8.x.code language-yaml indices: id_field_data: enabled: true
note info INFO Pour prendre en charge Elasticsearch 8.x, Adobe Commerce 2.4.6 désactive la propriété indices.id_field_data
par défaut et utilise le champ_id
dans la propriétédocvalue_fields
. -
Dans le répertoire racine de votre projet Adobe Commerce, mettez à jour les dépendances du compositeur pour supprimer le module
Magento_Elasticsearch7
et installer le moduleMagento_Elasticsearch8
.code language-bash composer require magento/module-elasticsearch-8 --update-with-all-dependencies
-
Mettez à jour les composants de votre projet.
code language-bash bin/magento setup:upgrade
-
Configurez Elasticsearch dans Admin.
-
Réindexez l’index du catalogue.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Supprimez tous les éléments des types de cache activés.
code language-bash bin/magento cache:clean
Rétrogradation d’Elasticsearch
Si vous mettez par inadvertance à niveau la version d’Elasticsearch sur votre serveur ou déterminez que vous devez effectuer une mise à niveau pour toute autre raison, vous devez également mettre à jour les dépendances de votre projet Adobe Commerce. Par exemple, pour passer de Elasticsearch 8.x à 7.x
-
Réduisez le serveur Elasticsearch 8.x à 7.x et assurez-vous qu’il est en cours d’exécution. Voir la documentation Elasticsearch.
-
Dans le répertoire racine de votre projet Adobe Commerce, mettez à jour les dépendances du compositeur pour supprimer le module
Magento_Elasticsearch8
et ses dépendances du compositeur et installer le moduleMagento_Elasticsearch7
.code language-bash composer remove magento/module-elasticsearch-8
-
Mettez à jour les composants de votre projet.
code language-bash bin/magento setup:upgrade
-
Configurez Elasticsearch dans Admin.
-
Réindexez l’index du catalogue.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Supprimez tous les éléments des types de cache activés.
code language-bash bin/magento cache:clean
Extensions tierces
Nous vous recommandons de contacter le fournisseur de votre moteur de recherche pour déterminer si votre extension est entièrement compatible avec une version d’Adobe Commerce.
Conversion du format de tableau de la base de données
Vous devez convertir le format de toutes les tables de base de données de COMPACT
à DYNAMIC
. Vous devez également convertir le type de moteur de stockage de MyISAM
en InnoDB
. Voir bonnes pratiques.
Définition de la limite des fichiers ouverts
La définition de la limite des fichiers ouverts (ulimit) peut permettre d’éviter l’échec de plusieurs appels récursifs de longues chaînes de requête ou des problèmes liés à l’utilisation de la commande bin/magento setup:rollback
. Cette commande est différente pour différents shells UNIX. Consultez votre version pour plus d’informations sur la commande ulimit
.
Adobe recommande de définir la valeur 65536
ou plus des fichiers ouverts ulimit, mais vous pouvez utiliser une valeur plus grande si nécessaire. Vous pouvez définir l’ulimit sur la ligne de commande ou en faire un paramètre permanent pour le shell de l’utilisateur.
Pour définir ulimit à partir de la ligne de commande :
-
Passez à l’ propriétaire du système de fichiers.
-
Définissez la ulimit sur
65536
.code language-bash ulimit -n 65536
Pour définir la valeur dans votre shell Bash :
-
Passez à l’ propriétaire du système de fichiers.
-
Ouvrez
/home/<username>/.bashrc
dans un éditeur de texte. -
Ajoutez la ligne suivante :
code language-bash ulimit -n 65536
-
Enregistrez vos modifications dans le fichier
.bashrc
et quittez l’éditeur de texte.
pcre.recursion_limit
dans le fichier php.ini
, car cela peut entraîner des restaurations incomplètes sans préavis d’échec.Vérification de l’exécution des tâches cron
Le planificateur de tâches UNIX cron
est essentiel pour les opérations Adobe Commerce quotidiennes. Il planifie des choses comme la réindexation, les newsletters, les e-mails et les plans de site. Plusieurs fonctionnalités nécessitent au moins une tâche cron s’exécutant en tant que propriétaire du système de fichiers.
Pour vérifier que votre tâche cron est configurée correctement, vérifiez crontab en saisissant la commande suivante en tant que propriétaire du système de fichiers :
crontab -l
Les résultats semblables à ceux-ci doivent s’afficher :
#~ MAGENTO START c5f9e5ed71cceaabc4d4fd9b3e827a2b
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
#~ MAGENTO END c5f9e5ed71cceaabc4d4fd9b3e827a2b
Un autre symptôme de l’inexécution de cron est l’erreur suivante dans l’administrateur :
Pour voir l’erreur, cliquez sur Messages système en haut de la fenêtre comme suit :
Voir Configuration et exécution de cron pour plus d’informations.
Set DATA_CONVERTER_BATCH_SIZE
Adobe Commerce 2.4 comprend des améliorations de sécurité qui nécessitent que certaines données soient converties de la version sérialisée vers JSON. Cette conversion survient lors de la mise à niveau et peut prendre du temps, selon la quantité de données contenues dans votre base de données.
Les tableaux suivants sont les plus affectés :
catalogrule
core_config_data
magento_reward_history
quote_payment
quote
sales_order_payment
sales_order
salesrule
url_rewrite
Si vous disposez d’une grande quantité de données, vous pouvez améliorer les performances en définissant la valeur d’une variable d’environnement, DATA_CONVERTER_BATCH_SIZE
. Par défaut, la valeur est définie sur 50,000
.
Pour définir la variable d’environnement :
-
Passez à l’ propriétaire du système de fichiers.
-
Définissez la variable :
code language-bash export DATA_CONVERTER_BATCH_SIZE=100000
note note NOTE DATA_CONVERTER_BATCH_SIZE
nécessite de la mémoire ; évitez de la définir sur une valeur élevée (environ 1 Go) sans la tester au préalable. -
Une fois la mise à niveau terminée, vous pouvez annuler la définition de la variable :
code language-bash unset DATA_CONVERTER_BATCH_SIZE
Vérification des autorisations du système de fichiers
Pour des raisons de sécurité, Adobe Commerce requiert certaines autorisations sur le système de fichiers. Les autorisations sont différentes de la propriété. La propriété détermine qui peut effectuer des actions sur le système de fichiers ; les autorisations déterminent ce que l’utilisateur peut faire.
Les répertoires du système de fichiers doivent pouvoir être écrits par le groupe du propriétaire du système de fichiers.
Pour vérifier que les autorisations de votre système de fichiers sont correctement définies, connectez-vous au serveur d’applications ou utilisez l’application de gestionnaire de fichiers de votre fournisseur d’hébergement.
Par exemple, saisissez la commande suivante si l’application est installée dans /var/www/html/magento2
:
ls -l /var/www/html/magento2
Exemple de sortie :
total 1028
drwxrwx---. 12 magento_user apache 4096 Jun 7 07:55 .
drwxr-xr-x. 3 root root 4096 May 11 14:29 ..
drwxrwx---. 4 magento_user apache 4096 Jun 7 07:53 app
drwxrwx---. 2 magento_user apache 4096 Jun 7 07:53 bin
-rw-rw----. 1 magento_user apache 439792 Apr 27 21:23 CHANGELOG.md
-rw-rw----. 1 magento_user apache 3422 Apr 27 21:23 composer.json
-rw-rw----. 1 magento_user apache 425214 Apr 27 21:27 composer.lock
-rw-rw----. 1 magento_user apache 3425 Apr 27 21:23 CONTRIBUTING.md
-rw-rw----. 1 magento_user apache 10011 Apr 27 21:23 CONTRIBUTOR_LICENSE_AGREEMENT.html
-rw-rw----. 1 magento_user apache 631 Apr 27 21:23 COPYING.txt
drwxrwx---. 4 magento_user apache 4096 Jun 7 07:53 dev
-rw-rw----. 1 magento_user apache 2926 Apr 27 21:23 Gruntfile.js
-rw-rw----. 1 magento_user apache 7592 Apr 27 21:23 .htaccess
-rw-rw----. 1 magento_user apache 6419 Apr 27 21:23 .htaccess.sample
drwxrwx---. 4 magento_user apache 4096 Jun 7 07:53 lib
-rw-rw----. 1 magento_user apache 10376 Apr 27 21:23 LICENSE_AFL.txt
-rw-rw----. 1 magento_user apache 30634 Apr 27 21:23 LICENSE_EE.txt
-rw-rw----. 1 magento_user apache 10364 Apr 27 21:23 LICENSE.txt
-rw-rw----. 1 magento_user apache 4108 Apr 27 21:23 nginx.conf.sample
-rw-rw----. 1 magento_user apache 1427 Apr 27 21:23 package.json
-rw-rw----. 1 magento_user apache 1659 Apr 27 21:23 .php_cs
-rw-rw----. 1 magento_user apache 804 Apr 27 21:23 php.ini.sample
drwxrwx---. 2 magento_user apache 4096 Jun 7 07:53 phpserver
drwxrwx---. 6 magento_user apache 4096 Jun 7 07:53 pub
-rw-rw----. 1 magento_user apache 2207 Apr 27 21:23 README_EE.md
drwxrwx---. 7 magento_user apache 4096 Jun 7 07:53 setup
-rw-rw----. 1 magento_user apache 3731 Apr 27 21:23 .travis.yml
drwxrwx---. 7 magento_user apache 4096 Jun 7 07:53 update
drwxrws---. 11 magento_user apache 4096 Jun 13 16:05 var
drwxrws---. 29 magento_user apache 4096 Jun 7 07:53 vendor
Pour obtenir une explication de l’exemple de sortie, reportez-vous aux sections suivantes :
- La plupart des fichiers sont
-rw-rw----
, qui est660
drwxrwx---
=770
-rw-rw-rw-
=666
- Le propriétaire du système de fichiers est
magento_user
Pour obtenir des informations plus détaillées, saisissez la commande suivante :
ls -la /var/www/html/magento2/pub
Comme Adobe Commerce déploie des ressources de fichiers statiques dans des sous-répertoires de pub
, il est préférable de vérifier également les autorisations et la propriété dans ce répertoire.
Pour plus d’informations, voir Autorisations et propriété du système de fichiers.
Définition de la racine du répertoire pub/
Voir Modification de docroot pour améliorer la sécurité pour plus d’informations.
Installation du module externe de mise à jour du compositeur
Le module magento/composer-root-update-plugin
du compositeur résout les modifications qui doivent être apportées au fichier racine du projet composer.json
avant de procéder à la mise à jour vers une nouvelle exigence de produit.
Le module externe automatise partiellement la mise à niveau manuelle en identifiant et en vous aidant à résoudre les conflits de dépendance au lieu d’exiger que vous les identifiiez et les corrigiez manuellement.
Pour installer le module externe :
-
Ajoutez le package à votre fichier
composer.json
.code language-bash composer require magento/composer-root-update-plugin ~2.0 --no-update
-
Mettez à jour les dépendances :
code language-bash composer update