Konieczność przeniesienia sklepu internetowego do innego hostingodawcy lub zmiana domeny (subdomeny) to częsta potrzeba właścicieli sklepów. Migracja sklepu na PrestaShop 8 wygląda podobnie jak w 1.7, ale dochodzą dwa nowe warunki: zgodność środowiska z odpowiednią wersją PHP oraz dokładniejsze czyszczenie cache Symfony. Poniżej procedura dla najtrudniejszego scenariusza, czyli „zmieniam serwer i domenę” bez reinstalacji sklepu. Na potrzeby tego tutorialu wykorzystam Prestashop 8.0.4 z danymi demo i nie będę zmieniał żadnych opcji aby symulować sytuację, że oryginalna instalacja jest aktywna w trakcie całego procesu i dysponujemy jedynie plikami i zrzutem bazy danych.
Przygotowanie środowiska na nowym serwerze
Teoretycznie PrestaShop 8 działa na PHP 7.2.5+, ale w praktyce rekomendowane jest PHP 8.1 oraz aktualny serwer WWW i baza danych (MySQL 5.7+ lub MariaDB 10.2+). To minimalizuje ryzyko błędów po przenosinach i problemów z modułami.
Zmiana domeny sklepu Prestashop
Zmieniana domeny jest stosunkowo prosta (zakładając, że wcześniej poradziliśmy sobie z konfiguracją domeny, tak aby wskazywała już na właściwy serwer i katalog). W panelu administracyjnym sklepu przechodzimy do ustawień: Preferences -> SEO & URLs -> Set shop URL (w wersji polskojęzycznej: Preferencje -> SEO & URL -> Ustaw URL sklepu), gdzie zmieniamy wartość na nową domenę i zapisujemy.

Tryb konserwacji i spójność danych
W przenoszonym sklepie włącz tryb konserwacji (przerwa techniczna) na czas wykonywania kopii, aby uniknąć różnic między plikami a bazą (nowe zamówienia, koszyki, sesje). W produkcji zwykle wystarczy 5–15 minut okna serwisowego, jeśli masz gotową paczkę plików i zrzut SQL.

Wykonywanie kopii plików i bazy danych może chwilowo spowalniać serwer – to też jest argument by włączyć tryb konserwacji. Pamiętaj, aby po wszystkim go wyłączyć!
Kopia plików sklepu i transfer na nowy hosting
Na starym hostingu spakuj cały katalog sklepu do jednego archiwum (ZIP lub GZIP) i przenieś je na nowy serwer. Najczęstszy błąd to kopiowanie tysięcy plików po FTP, co potrafi wydłużyć migrację kilkukrotnie i generować braki w uprawnieniach.
Jeśli na serwerze nie jest dostępny menadżer plików to zaloguj się na SSH lub stwórz sobie prosty plik PHP, który skompresuje cały folder ze sklepem.
Kompresję folderu do pliku ZIP na serwerze po SSH wykonujemy prostą komendą:
zip -r prestashop.zip *Oczywiście z założeniem, że znajdujemy się wewnątrz tego folderu np. htdocs lub public_html. Na serwerze, na który przenosimy sklep wystarczy wpisać komendę:
unzip prestashop.zipJeśli komendy zip i unzip nie działają (Command not found), trzeba zainstalować pakiet zip:
sudo apt-get install zipJeżeli nie masz dostępu do SSH, w ostateczności możesz stworzyć plik unzip.php z taką zawartością:
<?php
system ("unzip prestashop.zip"); ?>Po rozpakowaniu dopilnuj, by katalogi var/, img/, modules/, themes/ były zapisywalne przez użytkownika PHP (najczęściej chmod 755) .
Eksport i import bazy danych
Zrób eksport SQL w panelu phpMyAdmin (lub za pomocą mysqldump), a następnie importuj do nowej bazy (trzeba ją wpierw stworzyć) o możliwie zbliżonej wersji silnika. Różnice wersji MySQL/MariaDB są częstą przyczyną błędów po imporcie (kolacje, tryby SQL, indeksy pełnotekstowe).

Jeżeli do importu również chcesz wykorzystać SSH, to możesz skopiować plik baza_presta.sql na nowy serwer i wywołać:
mysql -p -u root prestashop < presta.sqlAktualizacja danych dostępowych do bazy w Prestashop 8
W PrestaShop 8 dane połączenia są w pliku app/config/parameters.php. Po zmianie hostingu to jest pierwszy plik, który musi wskazywać nową bazę, inaczej zobaczysz błąd 500 lub komunikat o braku dostępu do DB.
W pliku parameters.php w nowej lokalizacji należy zmienić:
- adres serwera MySQL (często pozostaje localhost jeżeli baza danych jest zainstalowana lokalnie),
- nazwę użytkownika MySQL,
- hasło do MySQL,
- nazwę bazy danych.

Zmiana domeny w bazie danych
Jeśli zmieniasz domenę, popraw wartości domeny w:
ps_configurationdlaPS_SHOP_DOMAINorazPS_SHOP_DOMAIN_SSL,ps_shop_urlw kolumnachdomainidomain_ssl.

To rozwiązuje problem przekierowań na stary adres po uruchomieniu sklepu na nowym hostingu.
Po tej operacji może Cię zaskoczyć „błąd 500” po wejściu na stronę główną nowego sklepu. To wina tego co siedzi jeszcze w pamięci podręcznej sklepu.
Czyszczenie cache w Prestashop 8 po migracji
PrestaShop 8 intensywnie buforuje kontener Symfony i konfigurację. Po zmianie hostingu i domeny usuń zawartość var/cache/ (co najmniej prod/ i dev/), zostawiając pliki ochronne typu index.php jeśli występują. W wielu przypadkach to właśnie cache „trzyma” stare parametry i powoduje wrażenie, że parameters.php nie został zaktualizowany.
Wyczyszczenie plików cookies i pamięci podręcznej przeglądarki
To jedna z najczęstszych pułapek podczas przenoszenia sklepu. Po wykonaniu wszystkich zmian może się wydawać, że sklep „uparcie” przekierowuje na starą domenę, mimo że konfiguracja na serwerze i w bazie danych jest już poprawna. W większości przypadków winna jest pamięć podręczna przeglądarki, która zachowała stare przekierowania lub ciasteczka sesyjne. Dzieje się tak szczególnie wtedy, gdy nowy adres został otwarty jeszcze przed zakończeniem migracji. Rozwiązanie jest proste: należy wyczyścić cache i cookies przeglądarki albo otworzyć stronę w trybie prywatnym (incognito), który omija zapisane dane lokalne.
Odbudowa .htaccess i linków do zasobów
Po migracji typowe objawy to brak zdjęć i błędy 404 na podstronach. Najprościej wymusić regenerację reguł: usuń .htaccess, wejdź do panelu i przełącz „Przyjazne URL” (wyłącz, zapisz, włącz, zapisz). To odtwarza reguły mod_rewrite i stabilizuje ścieżki do obrazów.

Kontrola po przeniesieniu i adresy bezwzględne
Po zmianie domeny sprawdź moduły i motyw, które mogły zapisać pełne URL-e (slidery, bannery, stopka, linki w treściach CMS). To najczęstszy powód mieszania domen lub ładowania zasobów przez HTTP. Jeśli przechodzisz na SSL, upewnij się, że domena SSL jest zgodna w ps_shop_url i że serwer poprawnie podaje certyfikat.
Wnioski po migracji
PrestaShop 8 przenosi się przewidywalnie, jeśli trzymasz kolejność: pliki, baza, parameters.php, domeny w DB, czyszczenie var/cache, regeneracja .htaccess. Największa różnica względem starych wdrożeń to:
- większa wrażliwość na środowisko (PHP 8.1 jako bezpieczna baza)
- konieczność pełnego resetu cache po zmianach.



