Logo GRVision - Strony i sklepy internetowe
Darmowa konsultacja 881 932 088 kontakt@grvision.pl

Jak przenieść sklep PrestaShop na nowy serwer bez przestoju

Publikacja: · Grzegorz Rapczyński

Przeprowadzka sklepu nie musi oznaczać żadnej przerwy w sprzedaży. Cała sztuka polega na tym, żeby nowy serwer był w pełni przetestowany zanim ktokolwiek na niego trafi. Kolejność poniżej jest ważniejsza niż same czynności - większość nieudanych przenosin to nie błąd techniczny, tylko zamieniona kolejność dwóch kroków.

Kiedy przeprowadzka ma sens

Zmiana serwera to operacja, której nie robi się dla samej zmiany. Powody, które w praktyce uzasadniają przenosiny:

  • Sklep działa wolno mimo optymalizacji. Jeśli po uporządkowaniu zdjęć, cache i modułów czas odpowiedzi serwera dalej jest wysoki, limitem jest maszyna. O tym, co da się wycisnąć wcześniej, pisałem w tekście o przyspieszaniu sklepu.
  • Hosting nie pozwala podnieść limitów pamięci albo czasu wykonania do poziomu, którego wymaga katalog.
  • Nie ma możliwości zmiany wersji PHP albo dostępnych jest tylko kilka wersji, w tym żadna odpowiednia.
  • Brak kopii zapasowych po stronie hostingu albo brak możliwości przywrócenia pojedynczego pliku.
  • Sklep przerósł współdzielony hosting - objawia się losowymi błędami w godzinach szczytu.

Jeśli żadne z powyższych nie występuje, przeprowadzka prawdopodobnie nic nie da. Warto to uczciwie sprawdzić, bo to operacja z realnym ryzykiem.

Co przygotować przed

Lista rzeczy, które musisz mieć w ręku, zanim ruszysz:

  • Dostęp do panelu domeny - tego, w którym ustawia się serwery nazw i rekordy DNS. To najczęściej brakujący element całej układanki.
  • Dostęp FTP i do bazy na starym serwerze.
  • Konto na nowym serwerze z ustawioną wersją PHP zgodną ze sklepem i z odpowiednimi limitami.
  • Informację, gdzie jest poczta. Jeśli skrzynki firmowe stoją na starym hostingu, zmiana serwerów nazw zabierze również pocztę. To najczęstsza kosztowna niespodzianka przy przenosinach.
  • Listę usług zewnętrznych, które łączą się ze sklepem po adresie IP - integracje z hurtownią, kurierem, systemem magazynowym. IP się zmieni.
  • Certyfikat SSL na nowym serwerze, wystawiony przed przesiadką.

Kopia: pliki i baza

Sklep to dwie rzeczy: katalog z plikami i baza danych. Obie muszą pochodzić z tego samego momentu.

Pliki. Najszybsze jest spakowanie całości na starym serwerze do jednego archiwum i przeniesienie go bezpośrednio między serwerami, bez ściągania na własny komputer. Pobieranie kilkudziesięciu tysięcy małych plików przez FTP potrafi trwać wielokrotnie dłużej niż przeniesienie jednego dużego archiwum.

Co można pominąć, żeby archiwum było mniejsze:

  • katalog cache - odtworzy się sam,
  • logi,
  • stare kopie zapasowe leżące w katalogu sklepu,
  • wygenerowane miniatury, jeśli i tak planujesz je przebudować.

Baza. Zrzut bazy w kodowaniu UTF-8. Przy większym sklepie eksport przez przeglądarkę potrafi się urwać w połowie - lepiej zrobić go narzędziem konsolowym albo funkcją kopii zapasowej z panelu hostingu, która zapisuje plik na serwerze.

Sprawdź rozmiar zrzutu. Plik znacznie mniejszy niż się spodziewasz to sygnał, że eksport się przerwał. Import takiego pliku kończy się sklepem bez połowy zamówień.

Uruchomienie bez zmiany DNS

To jest krok, który decyduje o tym, czy przeprowadzka będzie bezbolesna. Nowy serwer trzeba uruchomić i przetestować, zanim skieruje się na niego domenę.

Służy do tego plik hosts na Twoim komputerze. Dopisujesz w nim adres IP nowego serwera obok nazwy domeny - i od tej chwili tylko Twoja przeglądarka wchodzi na nowy serwer, podczas gdy wszyscy klienci nadal obsługiwani są przez stary. Sklep działa pod właściwym adresem, więc możesz sprawdzić wszystko łącznie z płatnościami i mailami.

Alternatywa dla osób, które nie chcą ruszać plików systemowych: uruchomienie sklepu pod adresem tymczasowym z domeną techniczną hostingu. Działa, ale trzeba wtedy pamiętać o dwóch rzeczach - zablokowaniu indeksowania tej kopii przez wyszukiwarki i o tym, że część bramek płatności odrzuci transakcję z niepasującej domeny.

Lista kontrolna testów

Co sprawdzić Jak Dlaczego to często zawodzi
Strona główna i kategorie Kilka losowych kategorii i produktów Inne ustawienia serwera potrafią zepsuć generowanie adresów.
Panel administracyjny Logowanie i zapis dowolnej zmiany Uprawnienia do katalogów po rozpakowaniu archiwum.
Zdjęcia i miniatury Karta produktu i lista Brakujące miniatury po nieprzeniesieniu katalogu obrazków.
Pełne zamówienie testowe Koszyk, dostawa, płatność, potwierdzenie Najważniejszy test. Sprawdza sklep, bramkę i pocztę naraz.
Wysyłka maili Reset hasła i potwierdzenie zamówienia Nowy serwer ma inny adres IP - rekordy SPF często trzeba poprawić.
Certyfikat SSL Kłódka i brak ostrzeżeń Certyfikat wystawiony po przesiadce oznacza okno z ostrzeżeniem dla klientów.
Integracje zewnętrzne Synchronizacja stanów, etykiety kurierskie Usługi ograniczone do starego adresu IP.
Wyszukiwarka wewnętrzna Kilka fraz Indeks bywa przenoszony niekompletnie.

Test z pocztą warto zrobić osobno i dokładnie - zmiana serwera to jedna z głównych sytuacji, w których maile ze sklepu zaczynają wpadać do spamu.

Okno przesiadki i DNS

Zmiana DNS nie działa natychmiast i nie działa u wszystkich jednocześnie. Część klientów przez jakiś czas trafia jeszcze na stary serwer. To jest właśnie okno przesiadki i na nim polega cała ostrożność tej operacji.

Jak je skrócić:

  1. Dobę wcześniej obniż wartość TTL rekordów domeny do kilku minut. Dzięki temu po właściwej zmianie świat dowie się o niej w minuty, a nie w godziny.
  2. Wybierz porę najniższego ruchu. W większości sklepów to noc z wtorku na środę albo wczesny ranek.
  3. Zrób świeży zrzut bazy tuż przed zmianą i wgraj go na nowy serwer. Pliki mogły iść wcześniej, baza musi być z ostatniej chwili.
  4. Zmień rekordy na nowy serwer.
  5. Nie wyłączaj starego serwera. Zostaw go działającego przez co najmniej kilka dni.

Jeśli poczta stoi na starym hostingu, nie zmieniaj serwerów nazw - zmień wyłącznie rekord A wskazujący na serwer strony, zostawiając rekordy poczty bez zmian. To najczęstszy sposób na zgubienie firmowej skrzynki na dwa dni.

Zamówienia z dnia przeprowadzki

Przez okno przesiadki część klientów może złożyć zamówienie na starym serwerze, już po tym, jak zrobiłeś ostatni zrzut bazy. Te zamówienia nie przeniosą się same.

Trzy sposoby, w kolejności od najprostszego:

  • Wstrzymanie sprzedaży na godzinę. Sklep w trybie serwisowym, krótki komunikat, zero rozbieżności. Przy nocnej przesiadce to zwykle wystarcza i nikt tego nie zauważa.
  • Kontrola po fakcie. Zostawiasz sklep działający, a następnego dnia porównujesz numery zamówień na starym i nowym serwerze i ręcznie uzupełniasz różnicę. Działa przy kilku zamówieniach, nie przy kilkudziesięciu.
  • Przeniesienie samych tabel zamówień po przesiadce. Najbardziej techniczne i najbardziej ryzykowne - robię tak tylko tam, gdzie przerwa naprawdę nie wchodzi w grę.

W praktyce godzina w trybie serwisowym w środku nocy kosztuje mniej niż pół dnia porządkowania rozjechanych numerów zamówień.

Po przesiadce

  1. Sprawdź, czy sklep faktycznie chodzi z nowego serwera - najprostszy test to porównanie adresu IP domeny z adresem nowego konta.
  2. Usuń wpis z pliku hosts na swoim komputerze, inaczej będziesz widzieć nowy serwer nawet wtedy, gdy świat widzi stary.
  3. Złóż zamówienie testowe raz jeszcze, już po zmianie.
  4. Zgłoś sitemapę w Search Console i sprawdź, czy nie przybywa błędów skanowania.
  5. Podnieś TTL z powrotem do normalnej wartości po dwóch, trzech dniach.
  6. Zrób pierwszą kopię zapasową na nowym serwerze i sprawdź, że mechanizm kopii działa automatycznie.
  7. Stary serwer wyłącz dopiero po tygodniu, gdy w logach nie ma już ruchu.

Zanim przeniesiesz cokolwiek na produkcji, warto mieć miejsce, w którym można to przećwiczyć - postawienie kopii testowej sklepu to dokładnie ta sama operacja co przeprowadzka, tylko bez konsekwencji.

Najczęstsze błędy

  • Zmiana DNS przed testami. Najgorszy z możliwych - błędy wychodzą wtedy na klientach.
  • Zapomniana poczta. Serwery nazw zmienione hurtem, skrzynki firmowe przestają działać.
  • Baza i pliki z różnych momentów. Pliki z poniedziałku, baza ze środy - i brakuje zdjęć do produktów dodanych we wtorek.
  • Kopia testowa zaindeksowana przez Google. Adres tymczasowy bez blokady indeksowania tworzy duplikat całego sklepu.
  • Brak certyfikatu w momencie przesiadki. Klienci widzą ostrzeżenie o niezaufanym połączeniu.
  • Natychmiastowe wyłączenie starego konta. Część ruchu jeszcze tam trafia - i trafia na pustkę.
  • Stare ścieżki w bazie. Jeśli w konfiguracji została bezwzględna ścieżka katalogu ze starego serwera, sklep nie wstanie.

Na czas przełączenia przydaje się tryb serwisowy - ale ustawiony poprawnie, z własnym adresem IP na liście wyjątków i z kodem odpowiedzi, który nie każe wyszukiwarce usuwać stron z indeksu.

Najczęstsze pytania

Czy przeprowadzka wpływa na pozycje w Google?

Sama zmiana serwera przy zachowanej domenie i tych samych adresach nie zmienia pozycji. Ryzyko pojawia się wtedy, gdy przy okazji zmienia się adresy albo sklep jest niedostępny przez dłuższy czas.

Ile to trwa?

Sama przesiadka to zwykle jedno wieczorne okno. Większość pracy to przygotowanie i testy wcześniej - i to one decydują o tym, czy w nocy będzie spokojnie.

Czy mogę przenieść sklep sam?

Jeśli masz dostęp do FTP, bazy i panelu domeny oraz umiesz odtworzyć zrzut bazy - tak. Najczęstszym punktem, w którym ludzie się zatrzymują, jest DNS i poczta.

Co z certyfikatem SSL?

Wystawia się go na nowym serwerze przed przesiadką, jeśli hosting to umożliwia, albo zaraz po zmianie rekordów. Certyfikat jest związany z serwerem, nie przenosi się razem z plikami.

Czy trzeba wyłączać sklep na czas przenosin?

Nie musisz, ale krótkie okno serwisowe w nocy upraszcza sprawę zamówień złożonych w trakcie przesiadki i zwykle jest tańsze niż późniejsze porządkowanie.

Przeprowadzka pod nadzorem

Jeśli wolisz, żeby przeprowadzka poszła bez niespodzianek - robię to od początku do końca, razem z testami i nocnym oknem przesiadki. Formularz kontaktowy, 881 932 088 lub kontakt@grvision.pl. Jeśli przy okazji zmieniasz platformę, zobacz stronę o migracji sklepu.