Completar requisitos previos de actualización
Es importante comprender lo necesario para ejecutar Adobe Commerce. Primero debe revisar los requisitos del sistema para la versión a la que planea actualizar.
Después de revisar los requisitos del sistema, debe completar los siguientes requisitos previos antes de actualizar el sistema:
- Actualizar todo el software
- Compruebe que haya instalado un motor de búsqueda compatible
- Convertir formato de tabla de base de datos
- Establecer el límite de archivos abiertos
- Verificar que los trabajos cron se estén ejecutando
- Establecer
DATA_CONVERTER_BATCH_SIZE
- Comprobar permisos del sistema de archivos
- Establecer la raíz del directorio
pub/
- Instalación del complemento de actualización del Compositor
Actualizar todo el software
Los requisitos del sistema describen exactamente qué versiones de software de terceros se han probado con las versiones de Adobe Commerce.
Asegúrese de haber actualizado todos los requisitos y dependencias del sistema de su entorno. Consulte PHP 7.4, PHP 8.0, PHP 8.1 y configuración de PHP requerida.
.magento.app.yaml
y services.yaml
archivos actualizados y la versión de PHP en el ticket. El equipo de infraestructura en la nube puede tardar hasta 48 horas en actualizar el proyecto. Consulte Software y servicios compatibles.Compruebe que haya instalado un motor de búsqueda compatible
Adobe Commerce requiere que Elasticsearch u OpenSearch estén instalados para utilizar el software.
Si está actualizando de 2.3.x a 2.4, debe comprobar si está utilizando MySQL, Elasticsearch o una extensión de terceros como motor de búsqueda del catálogo en su instancia de 2.3.x. El resultado determina lo que debe hacer antes de actualizar a 2.4.
Si está actualizando revisiones en las líneas de versión 2.3.x o 2.4.x, si el Elasticsearch 7.x ya está instalado, puede migrar de forma opcional a OpenSearch.
Puede utilizar la línea de comandos o el administrador para determinar el motor de búsqueda del catálogo:
-
Escriba el comando
bin/magento config:show catalog/search/engine
. El comando devuelve un valor demysql
,elasticsearch
(que indica que el Elasticsearch 2 está configurado),elasticsearch5
,elasticsearch6
,elasticsearch7
o un valor personalizado, lo que indica que ha instalado un motor de búsqueda de terceros. Para las versiones anteriores a 2.4.6, utilice el valorelasticsearch7
para el Elasticsearch 7 o el motor OpenSearch. Para la versión 2.4.6 y posterior, utilice el valoropensearch
para el motor OpenSearch. -
En Admin, compruebe el valor del campo Stores > Settings > Configuration > Catalog > Catalog > Catalog Search > Search Engine.
Las secciones siguientes describen qué acciones debe realizar antes de actualizar a 2.4.0.
MySQL
A partir de la versión 2.4, MySQL ya no es un motor de búsqueda de catálogo compatible. Debe instalar y configurar Elasticsearch u OpenSearch antes de actualizar. Utilice los siguientes recursos para guiarle a través de este proceso:
- Elasticsearch de instalación y configuración
- Elasticsearch de instalación
- Configure nginx o Apache para que funcionen con el motor de búsqueda
- Configurar Commerce para que use el Elasticsearch y reindexe
Algunos motores de búsqueda de catálogos de terceros se ejecutan sobre el motor de búsqueda de Adobe Commerce. Póngase en contacto con el proveedor para determinar si debe actualizar la extensión.
MariaDB
La reindexación en MariaDB 10.4 y 10.6 tarda más tiempo en comparación con versiones anteriores de MariaDB o MySQL. Para acelerar la reindexación, se recomienda configurar estos parámetros de configuración de MariaDB:
Si experimenta una degradación del rendimiento no relacionada con la indexación después de actualizar a MariaDB 10.6, considere habilitar la configuración --query-cache-type
. Por ejemplo, --query-cache-type=ON
.
Antes de actualizar Adobe Commerce en proyectos de infraestructura en la nube, es posible que también deba actualizar MariaDB (consulte Prácticas recomendadas de actualización de MariaDB).
Por ejemplo:
- Adobe Commerce 2.4.6 con MariaDB versión 10.5.1 o superior
- Adobe Commerce 2.3.5 con MariaDB versión 10.3 o anterior
Además de estas recomendaciones, debe consultar al administrador de la base de datos sobre la configuración de los siguientes parámetros:
Motor de búsqueda
Debe instalar y configurar Elasticsearch 7.6 o superior o OpenSearch 1.2 antes de actualizar a 2.4.0. Adobe ya no es compatible con Elasticsearch 2.x, 5.x y 6.x. Configuración del motor de búsqueda en la Guía de configuración describe las tareas que debe realizar después de actualizar el Elasticsearch a una versión compatible.
Consulte Actualización del Elasticsearch para obtener instrucciones completas sobre cómo realizar copias de seguridad de los datos, detectar posibles problemas de migración y probar las actualizaciones antes de implementarlas en producción. Según la versión actual del Elasticsearch, puede que sea necesario o no reiniciar el clúster por completo.
Elasticsearch requiere Java Development Kit (JDK) 1.8 o superior. Consulte Instalar el Kit de desarrollo de software de Java (JDK) para comprobar qué versión de JDK está instalada.
OpenSearch
OpenSearch es una ramificación de código abierto de Elasticsearch 7.10.2, tras el cambio de licencia de Elasticsearch. Las siguientes versiones de Adobe Commerce son compatibles con OpenSearch:
- 2.4.6 (OpenSearch tiene un módulo y una configuración independientes)
- 2.4.5
- 2.4.4
- 2.4.3-p2
- 2.3.7-p3
Solo puede migrar de Elasticsearch a OpenSearch si está actualizando a una versión de Adobe Commerce de la lista anterior (o superior).
OpenSearch requiere JDK 1.8 o superior. Consulte Instalar el Kit de desarrollo de software de Java (JDK) para comprobar qué versión de JDK está instalada.
Configuración del motor de búsqueda describe las tareas que debe realizar después de cambiar los motores de búsqueda.
Elasticsearch de actualización
La compatibilidad con Elasticsearch 8.x se introdujo en Adobe Commerce 2.4.6. Las siguientes instrucciones muestran un ejemplo de actualización de Elasticsearch de 7.x a 8.x:
-
Actualice el servidor de Elasticsearch 7.x a 8.x y asegúrese de que está en funcionamiento. Consulte la documentación del Elasticsearch.
-
Habilite el campo
id_field_data
agregando la siguiente configuración al archivoelasticsearch.yml
y reiniciando el servicio de Elasticsearch 8.x.code language-yaml indices: id_field_data: enabled: true
note info INFO Para admitir el Elasticsearch 8.x, Adobe Commerce 2.4.6 deshabilita la propiedad indices.id_field_data
de forma predeterminada y utiliza el campo_id
en la propiedaddocvalue_fields
. -
En el directorio raíz del proyecto de Adobe Commerce, actualice las dependencias del Compositor para quitar el módulo
Magento_Elasticsearch7
e instalar el móduloMagento_Elasticsearch8
.code language-bash composer require magento/module-elasticsearch-8 --update-with-all-dependencies
-
Actualice los componentes del proyecto.
code language-bash bin/magento setup:upgrade
-
Configurar Elasticsearch en Admin.
-
Reindexe el índice del catálogo.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Elimine todos los elementos de los tipos de caché habilitados.
code language-bash bin/magento cache:clean
Elasticsearch de downgrade
Si actualiza de forma involuntaria la versión de Elasticsearch en el servidor o determina que necesita degradarla por cualquier otro motivo, también debe actualizar las dependencias del proyecto de Adobe Commerce. Por ejemplo, para reducir de Elasticsearch 8.x a 7.x
-
Reduzca el servidor de Elasticsearch 8.x a 7.x y asegúrese de que está en funcionamiento. Consulte la documentación del Elasticsearch.
-
En el directorio raíz del proyecto de Adobe Commerce, actualice las dependencias de Composer para quitar el módulo
Magento_Elasticsearch8
y sus dependencias de Composer e instale el móduloMagento_Elasticsearch7
.code language-bash composer remove magento/module-elasticsearch-8
-
Actualice los componentes del proyecto.
code language-bash bin/magento setup:upgrade
-
Configurar Elasticsearch en Admin.
-
Reindexe el índice del catálogo.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Elimine todos los elementos de los tipos de caché habilitados.
code language-bash bin/magento cache:clean
Extensiones de terceros
Le recomendamos que se ponga en contacto con el proveedor del motor de búsqueda para determinar si la extensión es totalmente compatible con una versión de Adobe Commerce.
Convertir formato de tabla de base de datos
Debe convertir el formato de todas las tablas de base de datos de COMPACT
a DYNAMIC
. También debe convertir el tipo de motor de almacenamiento de MyISAM
a InnoDB
. Ver prácticas recomendadas.
Establecer el límite de archivos abiertos
Establecer el límite (ulimit) de archivos abiertos puede ayudar a evitar errores en varias llamadas recursivas de cadenas de consulta largas o problemas con el uso del comando bin/magento setup:rollback
. Este comando es diferente para diferentes shells de UNIX. Consulte su sabor individual para obtener detalles específicos sobre el comando ulimit
.
El Adobe recomienda establecer los archivos abiertos ulimit a un valor de 65536
o más, pero puede usar un valor mayor si es necesario. Puede establecer el ulimit en la línea de comandos o convertirlo en un ajuste permanente para el shell del usuario.
Para establecer el ulimit desde la línea de comandos:
-
Cambiar al propietario del sistema de archivos.
-
Establezca el ulimit en
65536
.code language-bash ulimit -n 65536
Para establecer el valor en su shell de Bash:
-
Cambiar al propietario del sistema de archivos.
-
Abra
/home/<username>/.bashrc
en un editor de texto. -
Añada la línea siguiente:
code language-bash ulimit -n 65536
-
Guarde los cambios en el archivo
.bashrc
y salga del editor de texto.
pcre.recursion_limit
en el archivo php.ini
, ya que puede provocar reversiones incompletas sin previo aviso de error.Verificar que los trabajos cron se estén ejecutando
El programador de tareas de UNIX cron
es fundamental para las operaciones diarias de Adobe Commerce. Programa cosas como la reindexación, los boletines informativos, los correos electrónicos y los mapas del sitio. Varias funciones requieren que al menos un trabajo cron se ejecute como propietario del sistema de archivos.
Para comprobar que el trabajo de cron está configurado correctamente, compruebe el crontab introduciendo el siguiente comando como propietario del sistema de archivos:
crontab -l
Se deben mostrar resultados similares a los siguientes:
#~ 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
Otro síntoma de que cron no se está ejecutando es el siguiente error en el administrador:
Para ver el error, haga clic en Mensajes del sistema en la parte superior de la ventana de la siguiente manera:
Consulte Configurar y ejecutar cron para obtener más información.
Definir DATA_CONVERTER_BATCH_SIZE
Adobe Commerce 2.4 incluye mejoras de seguridad que requieren que algunos datos se conviertan de serializados a JSON. Esta conversión se produce durante la actualización y puede tardar mucho tiempo, según la cantidad de datos que haya en la base de datos.
Las siguientes tablas son las más afectadas:
catalogrule
core_config_data
magento_reward_history
quote_payment
quote
sales_order_payment
sales_order
salesrule
url_rewrite
Si tiene una gran cantidad de datos, puede mejorar el rendimiento estableciendo el valor de una variable de entorno, DATA_CONVERTER_BATCH_SIZE
. De manera predeterminada, el valor se establece en 50,000
.
Para establecer la variable de entorno:
-
Cambiar al propietario del sistema de archivos.
-
Configure la variable:
code language-bash export DATA_CONVERTER_BATCH_SIZE=100000
note note NOTE DATA_CONVERTER_BATCH_SIZE
requiere memoria; evite configurarla en un valor grande (aproximadamente 1 GB) sin probarla primero. -
Una vez completada la actualización, puede anular el ajuste de la variable:
code language-bash unset DATA_CONVERTER_BATCH_SIZE
Comprobar permisos del sistema de archivos
Por motivos de seguridad, Adobe Commerce requiere ciertos permisos en el sistema de archivos. Los permisos son diferentes de propiedad. La propiedad determina quién puede realizar acciones en el sistema de archivos; los permisos determinan lo que el usuario puede hacer.
El grupo propietario del sistema de archivos debe poder escribir en los directorios del sistema de archivos.
Para comprobar que los permisos del sistema de archivos están correctamente configurados, inicie sesión en el servidor de aplicaciones o utilice la aplicación de administrador de archivos del proveedor de alojamiento.
Por ejemplo, escriba el siguiente comando si la aplicación está instalada en /var/www/html/magento2
:
ls -l /var/www/html/magento2
Salida de ejemplo:
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
Consulte lo siguiente para obtener una explicación del resultado del ejemplo:
- La mayoría de los archivos son
-rw-rw----
, que es660
drwxrwx---
=770
-rw-rw-rw-
=666
- El propietario del sistema de archivos es
magento_user
Para obtener información más detallada, puede introducir el siguiente comando:
ls -la /var/www/html/magento2/pub
Dado que Adobe Commerce implementa recursos de archivos estáticos en subdirectorios de pub
, es aconsejable comprobar allí también los permisos y la propiedad.
Para obtener más información, consulte Permisos y propiedad del sistema de archivos.
Establecer la raíz del directorio pub/
Consulte Modificar docroot para mejorar la seguridad para obtener más información.
Instalación del complemento de actualización del Compositor
El complemento magento/composer-root-update-plugin
Composer resuelve los cambios que deben realizarse en el archivo del proyecto raíz composer.json
antes de actualizar a un nuevo requisito de producto.
El complemento automatiza parcialmente la actualización manual al identificar y ayudarle a resolver conflictos de dependencia en lugar de requerir que los identifique y corrija manualmente.
Para instalar el complemento:
-
Agregue el paquete a su archivo
composer.json
.code language-bash composer require magento/composer-root-update-plugin ~2.0 --no-update
-
Actualice las dependencias:
code language-bash composer update