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.

NOTE
Para los proyectos Pro de Adobe Commerce en la nube, debe crear un ticket de Soporte para instalar o actualizar servicios en entornos de Ensayo y Producción. Indique los cambios de servicio necesarios e incluya los .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 de mysql, 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 valor elasticsearch7 para el Elasticsearch 7 o el motor OpenSearch. Para la versión 2.4.6 y posterior, utilice el valor opensearch 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:

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:

NOTE
Esta configuración solo está disponible para implementaciones locales. Los clientes de Adobe Commerce en la infraestructura en la nube no tienen acceso a esta configuración.

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:

  1. Actualice el servidor de Elasticsearch 7.x a 8.x y asegúrese de que está en funcionamiento. Consulte la documentación del Elasticsearch.

  2. Habilite el campo id_field_data agregando la siguiente configuración al archivo elasticsearch.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 propiedad docvalue_fields.
  3. 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ódulo Magento_Elasticsearch8.

    code language-bash
    composer require magento/module-elasticsearch-8 --update-with-all-dependencies
    
  4. Actualice los componentes del proyecto.

    code language-bash
    bin/magento setup:upgrade
    
  5. Configurar Elasticsearch en Admin.

  6. Reindexe el índice del catálogo.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  7. 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

  1. Reduzca el servidor de Elasticsearch 8.x a 7.x y asegúrese de que está en funcionamiento. Consulte la documentación del Elasticsearch.

  2. 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ódulo Magento_Elasticsearch7.

    code language-bash
    composer remove magento/module-elasticsearch-8
    
  3. Actualice los componentes del proyecto.

    code language-bash
    bin/magento setup:upgrade
    
  4. Configurar Elasticsearch en Admin.

  5. Reindexe el índice del catálogo.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. 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:

  1. Cambiar al propietario del sistema de archivos.

  2. Establezca el ulimit en 65536.

    code language-bash
    ulimit -n 65536
    

Para establecer el valor en su shell de Bash:

  1. Cambiar al propietario del sistema de archivos.

  2. Abra /home/<username>/.bashrc en un editor de texto.

  3. Añada la línea siguiente:

    code language-bash
    ulimit -n 65536
    
  4. Guarde los cambios en el archivo .bashrc y salga del editor de texto.

IMPORTANT
Le recomendamos que evite establecer un valor para la propiedad 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:

NOTE
El crontab es el archivo de configuración responsable de ejecutar los trabajos cron.
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:

  1. Cambiar al propietario del sistema de archivos.

  2. 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.
  3. 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 es 660
  • 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:

  1. Agregue el paquete a su archivo composer.json.

    code language-bash
    composer require magento/composer-root-update-plugin ~2.0 --no-update
    
  2. Actualice las dependencias:

    code language-bash
    composer update
    
recommendation-more-help
83a60e0e-8849-4685-a8cd-c129ecd795ea