Actualización de Adobe Commerce Magento 2.4.2-p1 a 2.4.6-p4

Hoy febrero de 2024 Shopify parece ser la plataforma más popular para la creación de tiendas online, lo ha hecho muy bien ¿pero será la mejor opción? Antes que la mejor diría la más fácil, en tres patadas levantas un e-commerce sencillo

En 2018 Adobe Compro Magento y creo una versión en su nube privada llamada Adobe Commerce la cual es escalable a partir de la versión Open Source, los conspiranoicos creían que era el fin de Magento pero nada más lejos de la realidad aprox el 30% de los e-commerce lo utilizan (fuente wikipedia lol), el repositorio de Magento esta más vivo que nunca y a mi me da mucha curiosidad probar el servicio premium. Quiero pensar que la gente de Adobe Experience Cloud esta creando un hibrido entre una Licencia y un proyecto Open Source lo mejor de dos mundos.

Magento es uno de los mejores softwares escritos en PHP que yo he conocido, la sintaxis, la arquitectura, las dependencias, el manejo del cache… Es un software fino. El pero es que es más complicado y se requiere estudiar un poco más para dejarlo al 100. Por eso esta “guía” porque me rompí un poco la cabeza con este update. El método es por ssh, bajo Ubuntu Server lee la documentación y los requerimientos del sistema.

1. Generar Backup, respalde todo un Kubernete desde un administrador de mi nube…

2. Activar modo mantenimiento Magento

php bin/magento maintenance:enable

3. Actualizar versión de Magento, es importante el sufijo –no-update porque todavía no resolvemos los nuevos requerimientos del sistema

composer require magento/product-community-edition 2.4.6-p4 –no-update
composer update --ignore-platform-reqs

4. Actualizar PHP

# Desinstalamos la version de ubuntu
sudo apt purge php php-*

# Instalamos la 8.1
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

sudo apt install php8.1 php8.1-fpm php8.1-curl php8.1-xmlwriter php8.1-dom php8.1-gd php8.1-intl php8.1-mysql php8.1-soap php8.1-zip php8.1-bcmath php8.1-mbstring

5. Actualizar composer con la nueva version de PHP

composer update -W
php bin/magento setup:upgrade

6. Editamos el archivo del host virtual /etc/nginx/sites-available/site.com.conf cambiando todas las lineas:

fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
#Por
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;

7. Opensearch

#Desinstalamos elasticsearch

sudo apt purge elasticsearch

curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo apt-key add -

echo "deb https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

sudo apt update
sudo apt list -a opensearch
sudo apt -y install opensearch=2.5.0
sudo systemctl enable opensearch

8. Regenerar contenido estático, limpiar cache y desactivar modo mantenimiento.

php bin/magento setup:static-content:deploy -f
php bin/magento setup:di:compile
php bin/magento indexer:reindex
php bin/magento cache:flush

php bin/magento maintenance:disabled

Estos son los pasos que seguí, no olvides tener un backup antes de intentar cualquier actualización.