Magento 2.4.8 to jedna z najbardziej przełomowych aktualizacji platformy od lat. Nie chodzi tu o drobne poprawki kosmetyczne — Adobe podjęło odważne decyzje, które zmuszą praktycznie każdego administratora sklepu do poważnych zmian w infrastrukturze. Usunięcie wsparcia dla Elasticsearch (zarówno 7.x, jak i 8.x), porzucenie PHP 8.1 i 8.2, koniec z MySQL 8.0 — to nie ewolucja, to rewolucja w stacku technologicznym Magento.

W tym artykule znajdziesz kompletny przegląd zmian, szczegółowe wymagania systemowe, krok po kroku instrukcję migracji z wersji 2.4.7 na 2.4.8, dedykowany poradnik przejścia z Elasticsearch na OpenSearch oraz praktyczne wskazówki dotyczące rozwiązywania najczęstszych problemów. Artykuł jest skierowany do developerów, administratorów systemów i właścicieli sklepów, którzy planują aktualizację.

Uwaga: Magento 2.4.8 zawiera breaking changes — nie jest to aktualizacja, którą można wykonać jednym poleceniem composer update. Wymaga przygotowania infrastruktury, testowania rozszerzeń i zaplanowania okna serwisowego. Przeczytaj cały artykuł przed rozpoczęciem migracji.

1. Kluczowe zmiany w Magento 2.4.8

Zanim zagłębimy się w szczegóły techniczne, oto przegląd najważniejszych zmian, które niesie ze sobą Magento 2.4.8. Każda z nich ma bezpośredni wpływ na proces migracji i codzienną eksploatację sklepu.

PHP 8.3 i 8.4 — koniec ery PHP 8.1

Magento 2.4.8 wymaga PHP w wersji 8.3.x lub 8.4.x. To oznacza, że PHP 8.1 i PHP 8.2 nie są już obsługiwane. Jeśli Twój sklep działa na PHP 8.1 (co wciąż jest bardzo powszechne), musisz zaktualizować interpreter przed rozpoczęciem migracji Magento.

PHP 8.3 oferuje typed class constants, lepszy json_validate(), ulepszony generator losowości i liczne optymalizacje wydajnościowe. PHP 8.4 idzie jeszcze dalej — property hooks, asymmetric visibility, ulepszony JIT compiler i nowe funkcje tablicowe. W praktyce oznacza to szybszą obsługę zapytań, mniejsze zużycie pamięci i lepszą stabilność.

OpenSearch 2.19 — koniec Elasticsearch

To prawdopodobnie największa zmiana w Magento 2.4.8 i jednocześnie ta, która wymaga najwięcej pracy. Wsparcie dla Elasticsearch 7.x i 8.x zostało całkowicie usunięte. Jedynym wspieranym silnikiem wyszukiwania jest OpenSearch 2.19.x.

Decyzja ta nie jest zaskoczeniem — Adobe sygnalizowało ją od wersji 2.4.6, kiedy OpenSearch pojawił się jako alternatywa. Teraz jest to jedyna opcja. Dla sklepów, które wciąż używają Elasticsearch, migracja jest obowiązkowa i wymaga zaplanowania transferu danych oraz przebudowy indeksów.

Baza danych: MySQL 8.4 LTS i MariaDB 11.4 LTS

Magento 2.4.8 porzuca MySQL 8.0 na rzecz MySQL 8.4 LTS. Wprowadzono także oficjalne wsparcie dla MariaDB 11.4 LTS. Obie wersje to wydania z długoterminowym wsparciem, co dobrze współgra z dwuletnim cyklem życia Magento 2.4.8 (do kwietnia 2028).

MySQL 8.4 LTS przynosi lepszą wydajność zapytań, usprawniony optimizer, natywne wsparcie dla JSON path expressions i poprawki w replikacji. MariaDB 11.4 LTS oferuje z kolei lepszą kompresję stron InnoDB, ulepszony query cache i natywne kolumny wektorowe.

Composer 2.8+ obowiązkowy

Minimalną wymaganą wersją Composera jest teraz 2.8.x. Starsze wersje mogą nie obsługiwać nowych constraint'ów w composer.json Magento lub mogą powodować problemy z rozwiązywaniem zależności. Aktualizacja jest prosta:

composer self-update 2.8

Wsparcie do kwietnia 2028

Magento 2.4.8 będzie otrzymywać pełne wsparcie — zarówno poprawki bezpieczeństwa, jak i jakościowe — do kwietnia 2028 roku. To czyni tę wersję naturalnym wyborem dla firm, które chcą stabilnej platformy na najbliższe dwa lata bez konieczności częstych aktualizacji major.

Bezpieczeństwo i wydajność

Wersja 2.4.8 zawiera ponad 100 poprawek bezpieczeństwa, ulepszenia Content Security Policy (CSP), lepszą walidację danych wejściowych w API oraz optymalizacje wydajnościowe w panelu administracyjnym. Szczegóły omawiamy w dalszej części artykułu.

2. Wymagania systemowe

Poniższa tabela zawiera pełne wymagania systemowe dla Magento 2.4.8. Kolumna „Zmiana vs 2.4.7" wskazuje, co uległo zmianie w porównaniu z poprzednią wersją.

Komponent Wymagana wersja Zmiana vs 2.4.7
PHP 8.3.x lub 8.4.x Usunięto PHP 8.1, 8.2. Dodano 8.4
Serwer WWW Nginx 1.24+ lub Apache 2.4 Bez zmian
Baza danych MySQL 8.4 LTS lub MariaDB 11.4 LTS Usunięto MySQL 8.0. Dodano MariaDB 11.4
Wyszukiwarka OpenSearch 2.19.x Usunięto Elasticsearch 7.x i 8.x!
Cache Redis 7.2+ lub Valkey Dodano wsparcie dla Valkey
HTTP cache Varnish 7.x Bez zmian
Message queue RabbitMQ 3.13 Zaktualizowano z 3.12
Composer 2.8.x Podniesiono z 2.7
System operacyjny Linux (Ubuntu 22.04+, Debian 12+, RHEL 9+) Bez zmian
RAM Minimum 4 GB (zalecane 8 GB+) Bez zmian
Dysk NVMe SSD (zalecane) Rekomendacja NVMe
Wskazówka: Przed rozpoczęciem migracji sprawdź aktualne wersje komponentów na serwerze:
# Sprawdzenie wersji PHP
php -v

# Sprawdzenie wersji MySQL
mysql --version

# Sprawdzenie wersji OpenSearch
curl -s http://localhost:9200 | grep -o '"number":"[^"]*"'

# Sprawdzenie wersji Redis
redis-cli info server | grep redis_version

# Sprawdzenie wersji Composer
composer --version

# Sprawdzenie wersji Magento
bin/magento --version

Wymagania dotyczące rozszerzeń PHP

Magento 2.4.8 wymaga następujących rozszerzeń PHP. Większość z nich jest dostępna domyślnie, ale warto to zweryfikować:

  • bcmath, ctype, curl, dom, fileinfo, gd
  • hash, iconv, intl, json, libxml, mbstring
  • openssl, pcre, pdo_mysql, simplexml, soap, sockets
  • sodium, spl, tokenizer, xmlwriter, xsl, zip, zlib

Szybka weryfikacja rozszerzeń:

php -m | grep -E "bcmath|ctype|curl|dom|fileinfo|gd|iconv|intl|mbstring|openssl|pdo_mysql|simplexml|soap|sockets|sodium|tokenizer|xmlwriter|xsl|zip|zlib"

3. Co usunięto?

Magento 2.4.8 to wersja, która bezlitośnie czyści stare zależności. Poniżej lista technologii i funkcji, które zostały całkowicie usunięte (nie oznaczone jako deprecated, lecz fizycznie niedostępne).

Silniki wyszukiwania

Elasticsearch 7.x i 8.x — usunięte. Kod obsługujący Elasticsearch został wyłączony z core Magento. Adaptery, konfiguracje i klasy związane z Elasticsearch nie są już dostępne. Jedyną opcją jest OpenSearch 2.19.x. To najpoważniejsza zmiana w tej wersji — omawiana szerzej w sekcji o migracji na OpenSearch.

Wersje PHP

  • PHP 8.1 — usunięto. Wersja ta osiągnęła oficjalny EOL w listopadzie 2024.
  • PHP 8.2 — usunięto. Magento 2.4.8 wymaga minimalnie PHP 8.3.

Jeśli Twój kod customowy używa składni specyficznej dla PHP 8.1/8.2 (np. fibers w sposób niekompatybilny z 8.3 lub deprecated features), musisz go zaktualizować. Narzędzia takie jak Rector i PHPStan pomogą w automatycznej analizie kompatybilności.

Baza danych

  • MySQL 8.0 — usunięto wsparcie. Wymagany jest MySQL 8.4 LTS.
  • Stare adaptery PDO dla nieobsługiwanych wersji — usunięte.

Deprecated APIs i klasy

  • Klasy z namespace Magento\\Elasticsearch* — usunięte z core.
  • Interfejsy Magento\\Framework\\Search\\EngineResolverInterface — przepisane pod OpenSearch.
  • Legacy payment gateway adaptery (Braintree stara integracja) — usunięte na rzecz nowych modułów.
  • Starsze formaty importu/eksportu CSV z niestandarową separacją — zastąpione natywnym parserem.
  • Deprecated REST API endpointy z wersji 2.3.x — ostatecznie usunięte.
  • Zend_* legacy wrappers — usunięte (zastąpione przez Laminas\\*).

Integracje płatności

Starsze integracje płatności oparte na Magento\\Payment\\Model\\Method\\AbstractMethod nie są już wspierane. Adobe wymusza przejście na Payment Provider Gateway API, co dotyczy zarówno rozszerzeń własnych, jak i wtyczek firm trzecich. Jeśli korzystasz z niestandardowej bramki płatności, skontaktuj się z jej dostawcą w sprawie kompatybilności z 2.4.8.

Korzyści z usunięcia

  • Mniejszy footprint kodu — szybsze wdrożenia
  • Brak konfuzji między ES a OpenSearch
  • Nowoczesny stack PHP 8.3/8.4
  • Lepsza wydajność MySQL 8.4 LTS
  • Czysty codebase bez legacy wrapperów

Wyzwania

  • Wymaga przygotowania infrastruktury
  • Rozszerzenia trzecie mogą być niekompatybilne
  • Migracja ES → OpenSearch wymaga czasu
  • Aktualizacja bazy danych z downtime
  • Testy regresji kodu PHP

4. Nowości i ulepszenia

Magento 2.4.8 to nie tylko usunięcia. Wersja ta wprowadza szereg nowych funkcji i ulepszeń, które mają realny wpływ na bezpieczeństwo, wydajność i komfort pracy z platformą.

Bezpieczeństwo: CSP i walidacja

Content Security Policy (CSP) w Magento 2.4.8 został znacząco przebudowany. Nowy mechanizm pozwala na precyzyjniejsze definiowanie dozwolonych źródeł skryptów, stylów i mediów. Magento domyślnie włącza surowsze reguły CSP, co utrudnia ataki typu XSS.

  • Nowy format konfiguracji CSP w csp_whitelist.xml z granularnymi politykami per moduł.
  • Wsparcie dla nonce-based CSP — każdy inline script dostaje unikalny token.
  • Raportowanie naruszeń CSP do dedykowanego endpointu (opcjonalne).
  • Poprawki w sanityzacji danych wejściowych w ponad 30 endpointach REST/GraphQL.

GraphQL API

GraphQL w Magento 2.4.8 otrzymał rozszerzone wsparcie dla operacji B2B, lepszą obsługę paginacji, możliwość filtrowania produktów po niestandardowych atrybutach bez dodatkowej konfiguracji, oraz poprawki wydajnościowe w resolverach kategorii. Nowe mutacje obejmują:

  • addProductsToCompareList / removeProductsFromCompareList — zarządzanie listą porównania.
  • Ulepszony products query z obsługą sortowania po wielu polach jednocześnie.
  • Nowe query availableStores z pełnymi danymi konfiguracyjnymi per store view.
  • Batch mutations dla operacji koszyka — mniej round-tripów do serwera.

Wydajność panelu administracyjnego

Adobe przepisał kilka kluczowych komponentów panelu admina z myślą o wydajności:

  • Lazy loading grid'ów produktowych — strona ładuje się o 40–60% szybciej przy dużych katalogach.
  • Zoptymalizowane zapytania SQL w module raportowania — raporty sprzedażowe generują się kilkukrotnie szybciej.
  • Asynchroniczny eksport dużych zbiorów danych (CSV/XML) bez blokowania sesji admina.
  • Redukcja ilości zapytań AJAX na stronach edycji produktu.

Nowe strategie cachowania

Magento 2.4.8 wprowadza wsparcie dla Valkey — forka Redis rozwijanego przez Linux Foundation na licencji BSD. Konfiguracja jest identyczna jak dla Redis, wystarczy zmienić adres hosta w env.php. Dodatkowo:

  • Lepsze zarządzanie tagami cache — invalidacja jest bardziej granularna.
  • Nowy mechanizm cache warming po deploymencie statycznych treści.
  • Optymalizacja cache backend dla konfiguracji wielosklepowych (multi-store).

B2B (Adobe Commerce)

Dla użytkowników Adobe Commerce (wersja komercyjna) Magento 2.4.8 przynosi:

  • Ulepszony workflow zatwierdzania zamówień z wielopoziomowymi rolami.
  • Nowy moduł Quick Order z obsługą importu CSV.
  • Przebudowane Shared Catalogs z lepszą wydajnością przy dużej liczbie produktów.
  • Integracja z Adobe Experience Platform dla zaawansowanej segmentacji klientów B2B.

PWA Studio i headless

PWA Studio otrzymało ulepszenia w integracji z Magento 2.4.8 — lepsze wsparcie dla server-side rendering (SSR), nowe peregrine hooks dla obsługi koszyka i checkoutu, oraz poprawiona obsługa wielojęzycznych storefrontów. Dla zespołów pracujących w architekturze headless oznacza to mniej obejść i hacków.

Dostępność (WCAG)

Magento 2.4.8 wprowadza poprawki zgodności z WCAG 2.1 AA w domyślnych motywach Luma i Blank:

  • Poprawione kontrasty kolorów w formularzach i nawigacji.
  • Pełna nawigacja klawiaturowa w galerii produktów.
  • Aria-labels dla dynamicznych elementów (mini-cart, filtry).
  • Poprawione focus indicators w procesie checkout.

Potrzebujesz hostingu gotowego na Magento 2.4.8?

Docker kontenery z PHP 8.4, OpenSearch 2.19, MySQL 8.4 LTS i Redis 7.2 — gotowe do pracy. Zero konfiguracji stacku od zera.

Sprawdź ofertę SMARTX Hosting

5. Migracja z Magento 2.4.7 na 2.4.8

Migracja z wersji 2.4.7 do 2.4.8 wymaga zaplanowania i metodycznego podejścia. Poniżej znajdziesz kompletny przewodnik — od listy kontrolnej, przez komendy, po rozwiązywanie najczęstszych problemów.

Checklista przed migracją

Zanim wykonasz jakiekolwiek zmiany na serwerze, upewnij się, że:

  1. Sprawdziłeś kompatybilność rozszerzeń — skontaktuj się z dostawcami każdego zainstalowanego rozszerzenia (modułu) i zapytaj o wsparcie dla Magento 2.4.8. Alternatywnie, sprawdź ich repozytoria na GitHubie lub Packagist pod kątem wersji kompatybilnych z magento/product-community-edition:2.4.8.
  2. Przetestowałeś kod customowy na PHP 8.3/8.4 — uruchom PHPStan lub Psalm na swoim kodzie z targetem PHP 8.3:
    # Instalacja PHPStan
    composer require --dev phpstan/phpstan
    
    # Analiza kodu custom modułów
    vendor/bin/phpstan analyse app/code/ --level=5
  3. Zaplanowałeś migrację Elasticsearch → OpenSearch — to osobny, wieloetapowy proces, który powinien nastąpić przed aktualizacją Magento.
  4. Masz działające środowisko staging — nigdy nie aktualizuj produkcji bez wcześniejszych testów na kopii.
  5. Zweryfikowałeś customizacje motywu — sprawdź, czy Twój motyw nie nadpisuje klas lub szablonów, które zostały usunięte w 2.4.8.
  6. Sprawdziłeś cron jobs — upewnij się, że żadne zaplanowane zadania nie używają deprecated klas.

Krok 1: Pełny backup

Zacznij od kompletnego backupu. Nie polegaj na snapshotach serwera — zrób niezależną kopię:

# Backup bazy danych
mysqldump -u magento -p --single-transaction --routines --triggers \\
  magento_db > /backup/magento_db_$(date +%Y%m%d_%H%M%S).sql

# Backup plików Magento (bez vendor i generated)
tar czf /backup/magento_files_$(date +%Y%m%d_%H%M%S).tar.gz \\
  --exclude='vendor' \\
  --exclude='generated' \\
  --exclude='var/cache' \\
  --exclude='var/page_cache' \\
  --exclude='pub/static' \\
  /var/www/magento/

# Backup konfiguracji serwera
cp /etc/nginx/sites-available/magento.conf /backup/
cp /etc/php/8.2/fpm/php.ini /backup/
Tip: Jeśli Twoja baza danych jest duża (>5 GB), rozważ użycie mydumper zamiast mysqldump — pozwala na równoległy eksport tabel i jest kilkukrotnie szybszy.

Krok 2: Aktualizacja PHP do 8.3 lub 8.4

Na Ubuntu/Debian z repozytorium Ondreja Suryego:

# Dodanie repozytorium PHP
sudo add-apt-repository ppa:ondrej/php
sudo apt update

# Instalacja PHP 8.3 z wymaganymi rozszerzeniami
sudo apt install php8.3 php8.3-fpm php8.3-cli php8.3-common \\
  php8.3-mysql php8.3-xml php8.3-xmlrpc php8.3-curl php8.3-gd \\
  php8.3-imagick php8.3-dev php8.3-imap php8.3-mbstring \\
  php8.3-opcache php8.3-soap php8.3-zip php8.3-intl php8.3-bcmath \\
  php8.3-redis php8.3-sodium

# Przełączenie domyślnej wersji CLI
sudo update-alternatives --set php /usr/bin/php8.3

# Aktualizacja konfiguracji Nginx (pool FPM)
# W pliku konfiguracji Nginx zmień:
#   fastcgi_pass unix:/run/php/php8.2-fpm.sock;
# na:
#   fastcgi_pass unix:/run/php/php8.3-fpm.sock;

# Restart usług
sudo systemctl restart php8.3-fpm
sudo systemctl restart nginx

Kluczowe ustawienia php.ini dla Magento 2.4.8:

memory_limit = 2G
max_execution_time = 1800
zlib.output_compression = On
opcache.enable = 1
opcache.memory_consumption = 512
opcache.max_accelerated_files = 60000
opcache.validate_timestamps = 0
realpath_cache_size = 10M
realpath_cache_ttl = 7200

Krok 3: Instalacja i konfiguracja OpenSearch 2.19

Ten krok jest opisany szczegółowo w sekcji 6. W skrócie:

# Dodanie repozytorium OpenSearch
curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | \\
  sudo gpg --dearmor -o /usr/share/keyrings/opensearch-keyring

echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] \\
  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 install opensearch=2.19.*

# Konfiguracja (demo security dla pojedynczego node'a)
sudo nano /etc/opensearch/opensearch.yml

Krok 4: Aktualizacja bazy danych

Aktualizacja MySQL z 8.0 do 8.4 LTS. Jeśli używasz zarządzanego hostingu, skontaktuj się z dostawcą. Przy samodzielnej instalacji:

# Na Ubuntu/Debian — instalacja MySQL 8.4
wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb
# Wybierz MySQL 8.4 LTS w kreatorze
sudo apt update
sudo apt install mysql-server

# Lub migracja na MariaDB 11.4 LTS:
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | \\
  sudo bash -s -- --mariadb-server-version=mariadb-11.4
sudo apt install mariadb-server

# Po aktualizacji — sprawdzenie i naprawa tabel
mysqlcheck -u root -p --all-databases --auto-repair
mysql_upgrade -u root -p
Uwaga: Aktualizacja MySQL wymaga planowanego downtime'u. Upewnij się, że masz aktualny backup bazy danych. W przypadku MariaDB 11.4 zwróć uwagę na różnice w składni — niektóre zapytania specyficzne dla MySQL 8.0 mogą wymagać modyfikacji.

Krok 5: Aktualizacja Composer

# Aktualizacja Composera do 2.8
composer self-update 2.8

# Weryfikacja
composer --version
# Composer version 2.8.x ...

Krok 6: Włączenie trybu maintenance

cd /var/www/magento

# Włączenie trybu konserwacji
bin/magento maintenance:enable

# Opcjonalnie: dopuść swoje IP (żebyś mógł testować)
bin/magento maintenance:allow-ips 192.168.1.100

Krok 7: Aktualizacja Magento przez Composer

# Community Edition (Magento Open Source)
composer require magento/product-community-edition=2.4.8 \\
  --no-update

# Lub Adobe Commerce
composer require magento/product-enterprise-edition=2.4.8 \\
  --no-update

# Aktualizacja zależności
composer update

# Jeśli pojawią się konflikty zależności, spróbuj:
composer update --with-all-dependencies

Jeśli Composer zgłasza konflikty z rozszerzeniami trzecich firm, masz dwie opcje:

  1. Zaktualizuj rozszerzenie do wersji kompatybilnej z 2.4.8.
  2. Tymczasowo usuń rozszerzenie i zainstaluj je ponownie po aktualizacji (jeśli dostawca udostępnił kompatybilną wersję).

Krok 8: Uruchomienie procesu aktualizacji

# Wyczyszczenie wygenerowanych plików
rm -rf generated/code/* generated/metadata/*
rm -rf var/cache/* var/page_cache/* var/view_preprocessed/*

# Aktualizacja schematu bazy danych
bin/magento setup:upgrade

# Kompilacja DI (Dependency Injection)
bin/magento setup:di:compile

# Wdrożenie statycznych treści
bin/magento setup:static-content:deploy pl_PL en_US -f

# Reindeksacja (w tym OpenSearch)
bin/magento indexer:reindex

# Wyczyszczenie cache
bin/magento cache:flush

Krok 9: Konfiguracja wyszukiwarki

Jeśli wcześniej skonfigurowałeś OpenSearch, teraz musisz wskazać Magento na nowy silnik:

# Przez CLI
bin/magento config:set catalog/search/engine opensearch
bin/magento config:set catalog/search/opensearch_server_hostname localhost
bin/magento config:set catalog/search/opensearch_server_port 9200
bin/magento config:set catalog/search/opensearch_index_prefix magento2

# Przebudowa indeksów wyszukiwania
bin/magento indexer:reindex catalogsearch_fulltext

Alternatywnie, konfiguracja w app/etc/env.php:

'system' => [
    'default' => [
        'catalog' => [
            'search' => [
                'engine' => 'opensearch',
                'opensearch_server_hostname' => 'localhost',
                'opensearch_server_port' => '9200',
                'opensearch_index_prefix' => 'magento2',
                'opensearch_enable_auth' => '0',
                'opensearch_server_timeout' => '15',
            ]
        ]
    ]
]

Krok 10: Testy i wyłączenie trybu maintenance

# Sprawdzenie statusu Magento
bin/magento setup:db:status    # Powinno zwrócić "All modules are up to date"
bin/magento module:status      # Lista aktywnych modułów

# Uruchomienie testów (jeśli masz)
vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist

# Wyłączenie trybu konserwacji
bin/magento maintenance:disable

# Opcjonalnie: przełączenie na tryb produkcyjny
bin/magento deploy:mode:set production

Najczęstsze problemy i rozwiązania

Problem Przyczyna Rozwiązanie
Class "Elasticsearch\\..." not found Rozszerzenie trzecie nadal odwołuje się do klas Elasticsearch Zaktualizuj lub wyłącz rozszerzenie. Sprawdź composer.json modułu.
PHP Fatal: Uncaught TypeError Kod niekompatybilny z PHP 8.3/8.4 (strict types) Uruchom rector process app/code/ z konfiguracją dla PHP 8.3.
SQLSTATE[HY000]: General error: 1 no such table Niedokończony setup:upgrade Uruchom ponownie bin/magento setup:upgrade --keep-generated
Biała strona po aktualizacji Błąd DI compilation Wyczyść generated/ i uruchom setup:di:compile ponownie.
Wyszukiwanie nie działa OpenSearch nie jest uruchomiony lub indeksy nie zostały zbudowane Sprawdź curl localhost:9200 i wykonaj indexer:reindex.
Composer: Your requirements could not be resolved Rozszerzenie wymaga starej wersji Magento Spróbuj composer update --with-all-dependencies lub usuń konfliktujące rozszerzenie.
Area code is not set Problem z bootstrapem po aktualizacji Wyczyść cache: rm -rf var/cache/* var/page_cache/*

6. Migracja z Elasticsearch na OpenSearch

Przejście z Elasticsearch na OpenSearch to najbardziej wymagający element aktualizacji do Magento 2.4.8. W tej sekcji omawiamy cały proces krok po kroku.

Dlaczego OpenSearch?

OpenSearch to fork Elasticsearch 7.10, stworzony przez Amazon Web Services w 2021 roku po zmianie licencji Elasticsearch z Apache 2.0 na licencję Elastic (SSPL). OpenSearch pozostaje w pełni open source (Apache 2.0) i jest aktywnie rozwijany przez społeczność.

Z perspektywy Magento zmiana ta oznacza:

  • Licencja — OpenSearch jest na licencji Apache 2.0, co eliminuje ryzyka prawne związane z SSPL.
  • Kompatybilność API — OpenSearch 2.x zachowuje kompatybilność z API Elasticsearch 7.x, więc migracja danych jest stosunkowo prosta.
  • Wydajność — OpenSearch 2.19 oferuje porównywalną lub lepszą wydajność niż Elasticsearch 8.x dla typowych workloadów Magento.
  • Wsparcie — aktywna społeczność, regularne aktualizacje bezpieczeństwa, wsparcie od AWS.

Instalacja OpenSearch 2.19

Na Ubuntu/Debian:

# Import klucza GPG
curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | \\
  sudo gpg --dearmor --batch --yes \\
  -o /usr/share/keyrings/opensearch-keyring

# Dodanie repozytorium
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] \\
  https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt \\
  stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

# Instalacja
sudo apt update
sudo apt install opensearch=2.19.*

# Konfiguracja pamięci JVM (dostosuj do swojego serwera)
sudo nano /etc/opensearch/jvm.options
# Ustaw:
# -Xms1g
# -Xmx1g
# (minimum 1 GB, zalecane 2-4 GB dla średnich sklepów)

Konfiguracja OpenSearch

Edytuj /etc/opensearch/opensearch.yml:

# Nazwa klastra i node'a
cluster.name: magento-cluster
node.name: node-1

# Ścieżka danych
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch

# Sieć — nasłuchuj na localhost (bezpieczne dla single-node)
network.host: 127.0.0.1
http.port: 9200

# Single-node discovery
discovery.type: single-node

# Wyłączenie security plugin dla środowisk developerskich
# (na produkcji NALEŻY skonfigurować security!)
plugins.security.disabled: true

# Opcjonalnie: limity
indices.query.bool.max_clause_count: 10240

# Kompatybilność z klientami ES 7.x (przydatne podczas migracji)
compatibility.override_main_response_version: true
# Start i włączenie autostartu
sudo systemctl enable opensearch
sudo systemctl start opensearch

# Weryfikacja
curl -s http://localhost:9200
# Powinno zwrócić JSON z "version" : { "number" : "2.19.x" }

Migracja danych z Elasticsearch

Jeśli Twój Elasticsearch działa równolegle, możesz przenieść indeksy. Jednak w przypadku Magento najłatwiej jest po prostu przebudować indeksy od zera — Magento generuje indeksy wyszukiwania z bazy danych, więc nie ma potrzeby przenoszenia starych danych.

Zalecane podejście: Zainstaluj OpenSearch, skonfiguruj Magento na OpenSearch, uruchom bin/magento indexer:reindex catalogsearch_fulltext — gotowe. Nie przenoś starych indeksów z Elasticsearch.

Jeśli mimo to potrzebujesz migracji danych (np. custom indeksy):

# Narzędzie: opensearch-migration (Python)
pip3 install opensearch-migration

# Lub użyj narzędzia reindex z remote
curl -X POST "http://localhost:9200/_reindex" \\
  -H 'Content-Type: application/json' \\
  -d '{
    "source": {
      "remote": {
        "host": "http://old-elasticsearch:9200"
      },
      "index": "magento2_product_*"
    },
    "dest": {
      "index": "magento2_product_migrated"
    }
  }'

Konfiguracja Magento pod OpenSearch

Po instalacji OpenSearch zaktualizuj konfigurację Magento:

# Przez CLI (zalecane)
bin/magento config:set catalog/search/engine opensearch
bin/magento config:set catalog/search/opensearch_server_hostname 127.0.0.1
bin/magento config:set catalog/search/opensearch_server_port 9200
bin/magento config:set catalog/search/opensearch_index_prefix magento2
bin/magento config:set catalog/search/opensearch_enable_auth 0
bin/magento config:set catalog/search/opensearch_server_timeout 15

# Przebudowa indeksów
bin/magento indexer:reindex

# Weryfikacja — sprawdź czy indeksy zostały utworzone w OpenSearch
curl -s "http://localhost:9200/_cat/indices?v" | grep magento

Porównanie wydajności: Elasticsearch vs OpenSearch

Metryka Elasticsearch 8.x OpenSearch 2.19
Czas indeksacji 50k produktów ~45 sek ~42 sek
Wyszukiwanie (avg latency) ~12 ms ~11 ms
Zużycie RAM (idle, 50k prod.) ~1.8 GB ~1.6 GB
Zużycie dysku (50k prod.) ~380 MB ~350 MB
Licencja SSPL / Elastic License Apache 2.0

Wyniki są porównywalne, z lekką przewagą OpenSearch w zakresie zużycia zasobów. W praktyce użytkownik sklepu nie odczuje różnicy — wyszukiwanie działa identycznie.

Weryfikacja po migracji

# 1. Sprawdź czy OpenSearch odpowiada
curl -s http://localhost:9200/_cluster/health | python3 -m json.tool

# 2. Sprawdź indeksy Magento
curl -s "http://localhost:9200/_cat/indices?v&h=index,docs.count,store.size" | grep magento

# 3. Przetestuj wyszukiwanie w sklepie
# Otwórz frontend → wpisz zapytanie w wyszukiwarkę → sprawdź wyniki

# 4. Sprawdź logi Magento
tail -f var/log/system.log | grep -i opensearch

# 5. Sprawdź status indeksera
bin/magento indexer:status

7. Migracja z Magento 1 na 2.4.8

Magento 1 osiągnęło End of Life w czerwcu 2020 roku. Jeśli Twój sklep nadal działa na Magento 1, nie ma już możliwości otrzymywania oficjalnych poprawek bezpieczeństwa. Migracja na Magento 2.4.8 (lub Mage-OS) jest pilnie zalecana.

Ważne: Migracja z Magento 1 na Magento 2 to nie aktualizacja — to przebudowa sklepu od podstaw. Architektura obu wersji jest fundamentalnie różna. Nie istnieje przycisk „upgrade", który przeniesie Twój sklep automatycznie.

Co można zmigrować?

  • Dane produktowe — katalog, kategorie, atrybuty, ceny, stany magazynowe.
  • Klienci — konta, adresy, grupy klientów.
  • Zamówienia — historia zamówień, faktury, zwroty (jako dane archiwalne).
  • Strony CMS — treści stron i bloków statycznych (wymagają ręcznej weryfikacji formatowania).
  • Konfiguracja SEO — URL rewrite rules, meta tagi, mapy witryny.

Czego nie można przenieść automatycznie?

  • Motyw — Magento 2 używa zupełnie innej struktury motywów (XML layout, LESS/CSS, Knockout.js). Motyw musi być odtworzony od zera.
  • Rozszerzenia — wtyczki M1 nie działają w M2. Każde rozszerzenie wymaga znalezienia odpowiednika dla M2 lub napisania od nowa.
  • Integracje — API się zmieniło (REST/GraphQL zamiast SOAP/XML-RPC). Integracje z ERP, CRM i innymi systemami wymagają przepisania.

Narzędzia migracji

Magento Data Migration Tool — oficjalne narzędzie do przenoszenia danych z M1 na M2. Obsługuje trzy trypy migracji:

  1. migrate:settings — konfiguracja sklepu, stawki podatkowe, metody dostawy i płatności.
  2. migrate:data — produkty, klienci, zamówienia, strony CMS.
  3. migrate:delta — zmiany przyrostowe (uruchamiany wielokrotnie przed ostatecznym przełączeniem).
# Przykładowe uruchomienie Data Migration Tool
bin/magento migrate:data -r vendor/magento/data-migration-tool/etc/opensource-to-opensource/1.9.4.5/config.xml

# Migracja przyrostowa (uruchamiaj codziennie przed go-live)
bin/magento migrate:delta -r vendor/magento/data-migration-tool/etc/opensource-to-opensource/1.9.4.5/config.xml

Typowy timeline migracji z M1

Faza Czas trwania Opis
Analiza i planowanie 2–4 tygodnie Audyt rozszerzeń, mapowanie funkcjonalności, wybór motywu M2
Setup infrastruktury 1–2 tygodnie Konfiguracja serwera z pełnym stackiem Magento 2.4.8
Rozwój motywu 4–8 tygodni Odtworzenie lub stworzenie nowego motywu
Migracja danych 1–3 tygodnie Konfiguracja i testy Data Migration Tool
Integracje 2–4 tygodnie Podłączenie ERP, płatności, dostawy, marketing
Testy i QA 2–4 tygodnie Testy funkcjonalne, wydajnościowe, UAT
Go-live 1 tydzień Finalna migracja delta, przełączenie DNS, monitoring

Łącznie: 3–6 miesięcy w zależności od złożoności sklepu, liczby rozszerzeń i customizacji.

Mage-OS jako alternatywa

Mage-OS to niezależny fork Magento Open Source, rozwijany przez społeczność europejskich developerów. Jest w pełni kompatybilny z ekosystemem Magento 2, ale oferuje bardziej przejrzysty governance i szybsze wydawanie poprawek. Jeśli planujesz migrację z M1, warto rozważyć Mage-OS jako platformę docelową — szczególnie jeśli nie potrzebujesz funkcji specyficznych dla Adobe Commerce.

8. Timeline wsparcia

Zrozumienie cyklu życia poszczególnych wersji Magento jest kluczowe dla planowania aktualizacji. Poniżej aktualny stan wsparcia:

Wersja Status Koniec wsparcia Uwagi
Magento 2.4.4 EOL Listopad 2024 Brak jakichkolwiek aktualizacji
Magento 2.4.5 EOL Sierpień 2025 Brak jakichkolwiek aktualizacji
Magento 2.4.6 EOL Zakończone Brak oficjalnych poprawek
Magento 2.4.7 Tylko security ~Q4 2025 / Q1 2026 Tylko krytyczne poprawki bezpieczeństwa
Magento 2.4.8 Pełne wsparcie Kwiecień 2028 Poprawki bezpieczeństwa + jakościowe
Dlaczego pozostawanie na starych wersjach jest niebezpieczne:
  • Niezałatane luki bezpieczeństwa — sklepy na EOL wersjach są celem ataków (Magecart, skimming).
  • Brak kompatybilności z nowymi rozszerzeniami i integracjami.
  • Problemy z PCI DSS compliance — audytorzy mogą zakwestionować używanie niewspieranego oprogramowania.
  • Rosnący dług technologiczny — im dłużej zwlekasz, tym trudniejsza i droższa migracja.

Jeśli Twój sklep działa na wersji 2.4.6 lub starszej, aktualizacja do 2.4.8 powinna być priorytetem. Wersja 2.4.7 daje jeszcze trochę czasu, ale planowanie migracji warto rozpocząć już teraz — szczególnie ze względu na konieczność przejścia na OpenSearch.

9. Hosting gotowy na Magento 2.4.8

Wymagania systemowe Magento 2.4.8 stawiają przed dostawcami hostingu wyraźne wyzwania. Nie każdy hosting współdzielony lub nawet VPS jest w stanie zapewnić pełny stack — szczególnie problematyczny jest wymóg OpenSearch, który nie jest standardowo dostępny u większości dostawców.

Na co zwrócić uwagę przy wyborze hostingu?

  1. PHP 8.3 lub 8.4 — upewnij się, że hosting oferuje najnowsze wersje PHP z możliwością wyboru. Wiele hostingów współdzielonych wciąż oferuje maksymalnie PHP 8.1 lub 8.2.
  2. OpenSearch 2.19 — to największy problem. Elasticsearch był powszechnie dostępny, ale OpenSearch wymaga dedykowanej instalacji. Hosting współdzielony praktycznie nigdy go nie oferuje. Potrzebujesz co najmniej VPS z pełnym dostępem root.
  3. Redis 7.2+ — niezbędny dla cache sesji i cache pełnostronicowej. Valkey jako alternatywa jest akceptowalny.
  4. MySQL 8.4 LTS lub MariaDB 11.4 LTS — upewnij się, że hosting oferuje odpowiednią wersję bazy danych, a nie starszą (8.0).
  5. NVMe SSD — Magento jest intensywne pod kątem I/O (indeksacja, import danych, generowanie cache). Dyski NVMe oferują 5–10x lepszą wydajność niż SATA SSD.
  6. Minimum 4 GB RAM — Magento samo potrzebuje ~2 GB, OpenSearch kolejne 1–2 GB, Redis 0.5 GB, MySQL 1–2 GB. Na produkcji realnie potrzebujesz 8 GB+.
  7. Varnish 7.x — opcjonalny, ale zdecydowanie zalecany. Redukuje obciążenie PHP o 80–90% przy typowym ruchu.

Docker jako rozwiązanie

Coraz popularniejszym podejściem jest uruchamianie Magento w kontenerach Docker. Każdy komponent (PHP-FPM, Nginx, OpenSearch, Redis, MySQL) działa w osobnym kontenerze, co zapewnia izolację, powtarzalność i łatwość aktualizacji. Na smartxhosting.pl oferujemy gotowe kontenery Docker z pełnym stackiem Magento 2.4.8 — PHP 8.4, OpenSearch 2.19, MySQL 8.4 LTS, Redis 7.2 i Varnish 7.x, skonfigurowane i zoptymalizowane pod kątem wydajności.

Hosting Magento 2.4.8 — gotowy stack w kontenerach

PHP 8.4 + OpenSearch 2.19 + MySQL 8.4 LTS + Redis 7.2 + Varnish 7.x. Docker kontenery na NVMe SSD, data center Katowice i Londyn, certyfikat ISO. VPS od ~150 PLN/mies.

Zobacz ofertę hostingu Magento

Przykładowy docker-compose.yml dla Magento 2.4.8

Dla zespołów, które chcą postawić środowisko samodzielnie, oto bazowa konfiguracja:

version: '3.8'

services:
  php-fpm:
    image: magento/magento-cloud-docker-php:8.3-fpm
    volumes:
      - ./src:/var/www/html
    environment:
      - PHP_MEMORY_LIMIT=2G
    depends_on:
      - db
      - opensearch
      - redis

  nginx:
    image: magento/magento-cloud-docker-nginx:latest
    ports:
      - "80:8080"
      - "443:8443"
    volumes:
      - ./src:/var/www/html
    depends_on:
      - php-fpm

  db:
    image: mysql:8.4
    environment:
      MYSQL_ROOT_PASSWORD: magento_root_pass
      MYSQL_DATABASE: magento
      MYSQL_USER: magento
      MYSQL_PASSWORD: magento_pass
    volumes:
      - db_data:/var/lib/mysql
    command: >
      --default-authentication-plugin=mysql_native_password
      --innodb-buffer-pool-size=1G
      --max-connections=200

  opensearch:
    image: opensearchproject/opensearch:2.19.0
    environment:
      - discovery.type=single-node
      - plugins.security.disabled=true
      - "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
    volumes:
      - os_data:/usr/share/opensearch/data
    ports:
      - "9200:9200"

  redis:
    image: redis:7.2-alpine
    ports:
      - "6379:6379"

  varnish:
    image: varnish:7.5
    ports:
      - "8080:80"
    depends_on:
      - nginx
    volumes:
      - ./varnish/default.vcl:/etc/varnish/default.vcl

volumes:
  db_data:
  os_data:

10. FAQ — najczęściej zadawane pytania

Jakie wersje PHP obsługuje Magento 2.4.8?

Magento 2.4.8 obsługuje PHP 8.3.x oraz PHP 8.4.x. Wsparcie dla PHP 8.1 i 8.2 zostało całkowicie usunięte. Zalecana wersja produkcyjna to PHP 8.3, natomiast PHP 8.4 jest w pełni wspierany i oferuje lepszą wydajność dzięki ulepszeniom JIT compilera. Przed aktualizacją PHP przetestuj swój kod customowy i rozszerzenia — zmiany w strict typing mogą powodować błędy w starszym kodzie.

Czy mogę nadal używać Elasticsearch z Magento 2.4.8?

Nie. Magento 2.4.8 całkowicie usuwa wsparcie dla Elasticsearch 7.x i 8.x. Jedynym wspieranym silnikiem wyszukiwania jest OpenSearch 2.19.x. Kod obsługujący Elasticsearch został usunięty z core Magento — nie ma możliwości obejścia tego ograniczenia. Migracja na OpenSearch jest obowiązkowa i powinna być pierwszym krokiem w planie aktualizacji. Dobra wiadomość: OpenSearch jest API-kompatybilny z Elasticsearch, więc proces migracji jest stosunkowo prosty — szczegóły w sekcji 6 tego artykułu.

Jak długo Magento 2.4.8 będzie wspierane?

Magento 2.4.8 będzie otrzymywać pełne wsparcie (poprawki bezpieczeństwa i jakościowe) do kwietnia 2028 roku. To daje ponad dwa lata stabilnego cyklu życia od daty premiery. Jest to najdłużej wspierana wersja z linii 2.4.x, co czyni ją optymalnym wyborem dla firm szukających stabilnej platformy na najbliższe lata.

Czy migracja z Magento 2.4.7 na 2.4.8 jest trudna?

Sama aktualizacja kodu Magento przez Composer jest standardowa. Trudność polega na przygotowaniu infrastruktury — musisz zaktualizować PHP do 8.3/8.4, przejść z Elasticsearch na OpenSearch 2.19, zaktualizować bazę danych do MySQL 8.4 LTS lub MariaDB 11.4 LTS, i upewnić się, że wszystkie rozszerzenia są kompatybilne. Na dobrze zarządzanym serwerze z doświadczonym administratorem cały proces można przeprowadzić w ciągu jednego dnia roboczego. Przy bardziej złożonych wdrożeniach — zaplanuj tydzień na testy w środowisku staging.

Czy mogę pominąć wersję 2.4.7 i zaktualizować bezpośrednio z 2.4.6 do 2.4.8?

Tak, Magento wspiera aktualizację bezpośrednio z 2.4.6 do 2.4.8 bez konieczności przechodzenia przez wersję pośrednią. Skrypt setup:upgrade automatycznie zastosuje wszystkie wymagane migracje schematu bazy danych. Musisz jednak pamiętać, że lista zmian infrastrukturalnych będzie dłuższa — z 2.4.6 przeskakujesz dwie generacje zmian. Szczególnie dokładnie przetestuj rozszerzenia i kod customowy.

Jaki hosting jest potrzebny do Magento 2.4.8?

Magento 2.4.8 wymaga hostingu z PHP 8.3 lub 8.4, OpenSearch 2.19, MySQL 8.4 LTS lub MariaDB 11.4 LTS, Redis 7.2+ oraz minimum 4 GB RAM (zalecane 8 GB+). Kluczowym wyzwaniem jest dostępność OpenSearch — wielu dostawców hostingu go nie oferuje. Potrzebujesz co najmniej VPS z dostępem root lub hostingu specjalizującego się w Magento. Na smartxhosting.pl oferujemy gotowe kontenery Docker z pełnym stackiem, w tym OpenSearch 2.19.

Czy Magento 2.4.8 wspiera Valkey zamiast Redis?

Tak. Magento 2.4.8 oficjalnie wspiera Valkey jako alternatywę dla Redis. Valkey to fork Redis na licencji BSD, rozwijany przez Linux Foundation po zmianie licencji Redis na source-available. Konfiguracja jest identyczna jak dla Redis — Valkey używa tego samego protokołu RESP, więc wystarczy zmienić adres serwera w app/etc/env.php. Valkey jest szczególnie atrakcyjny dla firm, które preferują w pełni open source'owe rozwiązania.

11. Podsumowanie

Magento 2.4.8 to wersja, która wyraźnie definiuje przyszłość platformy. Usunięcie Elasticsearch, PHP 8.1/8.2 i MySQL 8.0 to decyzje odważne, ale uzasadnione — pozwalają skupić rozwój na nowoczesnym, wydajnym i bezpiecznym stacku technologicznym.

Kluczowe wnioski z tego artykułu:

  • Migracja na OpenSearch jest obowiązkowa — to najpoważniejsza zmiana i wymaga dedykowanego planowania. Zacznij od tego kroku.
  • PHP 8.3 lub 8.4 to minimum — przetestuj kod customowy i rozszerzenia pod kątem kompatybilności. Narzędzia takie jak Rector i PHPStan pomogą w automatyzacji.
  • Aktualizacja bazy danych — MySQL 8.4 LTS lub MariaDB 11.4 LTS. Zaplanuj downtime i zrób backup.
  • Testuj w staging — nigdy nie aktualizuj produkcji bez wcześniejszych testów. Przygotuj środowisko staging z pełnym stackiem 2.4.8.
  • Wsparcie do kwietnia 2028 — to dobry moment na aktualizację. Wersja 2.4.8 da Ci spokój na ponad dwa lata.
  • Hosting ma znaczenie — upewnij się, że Twój dostawca oferuje OpenSearch 2.19, PHP 8.3/8.4 i odpowiednią wersję bazy danych.
Plan działania w trzech krokach:
  1. Teraz: Zrób audyt rozszerzeń i kodu customowego pod kątem kompatybilności z PHP 8.3 i OpenSearch.
  2. Tydzień 1–2: Postaw środowisko staging z pełnym stackiem 2.4.8, przeprowadź migrację testową.
  3. Tydzień 3–4: Po pomyślnych testach — zaplanuj okno serwisowe i przeprowadź migrację produkcji.

Jeśli potrzebujesz wsparcia w migracji lub szukasz hostingu gotowego na Magento 2.4.8, odwiedź smartxhosting.pl/magento. Oferujemy gotowe środowiska Docker z pełnym stackiem, wsparcie techniczne i pomoc w planowaniu aktualizacji.

Artykuł opracowany przez Zespół SMARTX • Ostatnia aktualizacja: 20 lutego 2026
Masz pytania? Napisz do nas: smartxhosting.pl/magento