Migracja witryny na nowy serwer w 9 krokach

migracja na nowy serwer

Prawie każda strona prędzej czy później zostanie przeniesiona na nowy serwer. Czasami jest to kwestia kosztów a innym razem potrzeb.

W ostatnim czasie najczęściej przenosimy strony na nowe szybsze serwery.

Zwłaszcza gdy optymalizowanie skryptów nie przynosi poprawy szybkości albo strona jest na starym serwerze.
Wtedy zawsze odczuwamy przyśpieszenie po zmianie na nowe konfiguracje.

Niezależnie czy strona to „zwykła” strona w HTML o 5 podstronach czy sklep na Preście, migrację warto usystematyzować i podzielić na etapy.

Ja dzielę to na 9 kroków, każdy z tych kroków można podzielić na wiele więcej ale zawsze warto trzymać się głównych zasad.

1. Nowy serwer

Pierwszym krokiem jest zawsze wybór serwera. Jak pisałem powyżej konieczność zmiany może wynikać z innych potrzeb. Dlatego warto w tym kroku określić najważniejsze cechy jakie ma spełniać nowy serwer.

Pod uwagę należy wziąć:
– czy potrzebujemy serwera dedykowanego czy wystarczy hosting;
– technologię nowego serwera – wersje PHP, bazy danych. Jakie dyski są używane i ile mamy miejsca. Obecnie najczęściej warto wybrać serwer na dyskach SSD, jeśli są inne mechanizmy przyśpieszające tym lepiej.
– ile można obsłużyć domen/subdomen – to jest kwestia do sprawdzenia przy najtańszych opcjach.
– jeśli przenosimy pocztę warto sprawdzić ile i jak dużych może być skrzynek. Jak duża może być pojedyncza wiadomość itd.
– czy można zainstalować zewnętrzne certyfikaty SSL lub skorzystać z Let’s Encrypt.
– jaki to koszt. Dla serwerów hostingowych warto sprawdzić w pierwszym i następnych latach. Dla każdego typu serwera dobrze dowiedzieć się także ile kosztują dodatkowe opcje np indywidualne IP.

2. Konfiguracja serwera

Zanim zaczniemy myśleć o przenosinach plików nowy serwer należy skonfigurować.

Oczywiście konfiguracja serwera dedykowanego jest znacznie trudniejsza niż hostingu.

Niezależnie od typu serweta zalecam go skonfigurować tak by stronę można było sprawdzić jeszcze przed końcową migracją.

Ustawiamy więc wszystkie domeny i subdomeny. Konfigurujemy wszystkie potrzebne elementy, ustawiamy wszystkie skrzynki mail.

Dla strony na początek zalecam ustawienie wersji PHP na zgodnej ze starym serwerem.

By sprawdzić czy domena jest poprawnie zainstalowana proponuję użyć plik HOSTS, w którym można wpisać na sztywno informacje o IP dla danej domeny.

W tym celu uruchamiamy notatnik jako Administrator.
Otwieramy plik C:\Windows\System32\Drivers\etc\hosts

W pliku tym dodajemy informacje i IP i domenie w formie:
94.152.57.56 mkane.antygen.pl

Po zapisaniu odwołanie na daną domenę powinno trafić na IP wskazany w pliku HOSTS.

Trzeba przy tym pamiętać, że www jest osobna domenę i jeśli witryna używa tego przedrostka to konfigurujemy pełny adres.

By komputer wskazywał poprawny adres należy usunąć tą linię lub ją zakomentować znakiem „#”.

3. Wdrożenie HTTPS

Osobnym tematem w konfiguracji serwera to wdrożenie HTTPS. Oczywiście jeśli strona używa bezpiecznego połączenia.

Warto to zrobić zanim zostanie ona w pełni przeniesiona. Wgrywamy wiec klucze i certyfikaty od razu.

A jeśli strona używa Let’s Encrypt to dodajemy punkt o konieczności konfiguracji HTTPS po zmianach w DNS i propagacji nowego adresu.

4. Migracja plików

Pierwszym krokiem w przenoszeniu plików powinno być wyczyszczenie i wyłączenie wszelkiego rodzaju systemów „cache”. Dzięki temu będzie mniej do przenoszenia.

Proces przenoszenia plików najlepiej zrobić poprzez spakowanie całego folderu korzystając z terminalu SSH. Później wystarczy go rozpakować na nowym serwerze.

Korzystając z SSH można także przesłać pliki bezpośrednio na nowy serwer łącząc się z nim np poprzez FTP.

Jeśli nie wiesz jak to zrobić to można po prostu pobrać backup lub pliki klientem FTP.

Strony, które są oparte na CMSach często mają migratory lub wtyczki, które umożliwiając przeniesienie witryny lub przynajmniej zrobienie archiwum z jej plikami.

Na takich stronach przed przenosinami warto też wyłączyć wszystkie wtyczki zabezpieczające typu Wordfence, bo utrudnią one instalacje na nowym serwerze.

Pamiętajmy, że po przenosinach w plikach konfiguracyjnych na pewno będziemy musieli zmienić dane.

Jeśli nie chcemy by na etapie migracji budowały się statystyki np w Google Analytics czy zbierały dane w pixelu to usuwamy lub komentujemy odpowiednie linie kodu.

5. Migracja bazy danych

Migrację bazy danych można wykonać razem z plikami. Jest jednak dla mnie osobny krok bo wymaga on skupienia.

Zawsze starajmy się wyczyścić bazę z niepotrzebnych tematów np 6 GB logów, sesji itd. Jednak gdy nie wiesz co robić to nie rób nic w bazie.

Dla stron, na których użytkownicy nie wprowadzają zmian, wystarczy eksport i import na nowym serwerze. Konfigurujemy w plikach nowe dostępy i bazy. O tym warto nie zapomnieć.

Czasami dla dużych baz trzeba użyć skryptów importujących np BigDump.

Gdy na stronie Użytkownicy wprowadzają zmiany to cały ten proces należy inaczej zapanować. Bo w czasie migracji Użytkownik może coś dodać np złożyć zamówienie.

By przeciwdziałać takie sytuacji można:
– skonfigurować nowy serwer tak by korzystać ze starej bazy i jak wszystko jest OK przeprowadzić migrację. Może to trwać 5 minut, więc czas jest zminimalizowany.
– konfigurujemy nowy serwer i blokujemy Użytkownikom możliwość wprowadzenia zmian.
– robimy migrację, zmieniamy DNS i po tym sprawdzamy na starym serwerze czy coś doszło. By temu zapobiec można migrację przeprowadzić w godzinach i najmniejszym ruchu.

6. Kontrola poprawności działania strony

Jeszcze przed pełną migracją proponuję sprawdzić dokładnie poprawność działania witryny.

Mając odpowiedni zapis w pliku HOSTS możemy sprawdzić witrynę ręcznie oraz programami typu Screaming Frog. Dzięki temu dowiemy się o wszystkich problemach jakie powstały po przeniesieniu plików i bazy.

To bardzo ważne by zrobić to jak najszybciej. Czasami po przenosinach trzeba się jeszcze nagimnastykować by wszystko działało poprawnie.

A jak jest wszystko OK to możemy np spróbować podnieść wersję PHP, co powinno przyśpieszyć działanie witryny.

7. Kontrola działania funkcji, skryptów itp

Na tym etapie warto także sprawdzić czy oprócz wczytywania się strony wszystko działa poprawnie np wysyłanie formularzy.

To ważne bo czasami naprawa wymaga chwili najlepiej to zrobić na stronie, której Użytkownicy jeszcze nie używają.

8. Zmiany w DNS

Zmiany w DNS to można napisać ostatni krok przenosin.

Wiemy, że wszystko przenieśliśmy. Strona jest sprawdzona i działa, a wszyscy są gotowi by poprawiać to co mimo wszystko się może popsuć?

To zmieniamy zapisy w DNS i czekamy na propagację zmian.

Z doświadczenia wiem, że czym bardziej skomplikowana strona bym bardziej trzeba być przygotowanym na problemy po pełnym uruchomieniu.

A jeśli nie mamy możliwości wykonania kroków 6 i 7 to trzeba nawet założyć, że strona od ręki nie będzie działać.

Nie róbmy więc zmian w piątek o 18:00, chyba, że zostawiliśmy sobie czas na pełne jej sprawdzenie.

Warto pamiętać, że rozgłoszenie zmiany dla większości ludzi będzie widoczne w ciągu 1-2 godzin. Zdarzają się jednak sytuację gdy jeszcze tydzień po zmianie ktoś wchodzi na stary serwer.

Dlatego ważne jest aby stary serwer chodził jeszcze kilka dni po przepięciu adresów IP. Zawsze też można na niego wrócić w przypadku większych problemów.

Myślę, że warto tu jeszcze zwrócić uwagę na to jak skonfigurowane są subodomeny i co się z nimi dzieje.

Jeśli subodmeny skonfigurowane są polem A i są przenoszone to także na nich trzeba zmienić numer IP. Jeśli skonfigurowane są jako CNAME to nie trzeba nic robić.
Chyba, że dana subdomena zostaje to wtedy trzeba zmienić konfigurację by wskazywała stary serwer.

Pamiętajmy o subdomenie „www” i zwróćmy uwagę na to czy kieruje na nowy serwer.

9. Kontrola po migracji

Wiem, że to już trzeci punkt ze słowem „kontrola”. Ale po wszystkich zmianach, wtedy gdy jesteśmy już prawie po warto wykonać jeszcze raz.

– sprawdźmy programem czy nie ma gdzieś 404 czy przekierowań,
– sprawdźmy czy wszystkie zasoby się wczytują,
– zalogujmy się ;
– wykonajmy testowe zamówienie,
– wyślijmy testowy mail z formularzów, najlepiej z wszystkich,
– dodajmy testowy post, wpis czy komentarz,
– sprawdźmy czy działają statystki GA czy też GTM, mogliśmy je zakomentować i trzeba to zmienić,
– sprawdźmy jak wygląda strona na komputerze i urządzeniu mobilnym,
– w pierwszy dzień i kolejnych warto sprawdzać error.log,
– sprawdźmy czy działają maile wychodzące i przechodzące jak przenosiliśmy też pocztę.

Dzięki temu będziemy wiedzieli, że wszystko jest w porządku.

Na tym etapie możemy także włączyć mechanizmy przyśpieszające i zabezpieczające, o ile nie zrobione to zostało prędzej.

Podsumowanie

Przenoszenie normalnej strony na nowy serwer nie jest skomplikowaną rzeczą.
Niestety czasami można napotkać problemy, które to utrudniają lub mocno wydłużają czas migracji.

Najczęściej jednak proces ten nie jest długi, zdarzyło mi się już przenieść niejedną stronę szybciej niż pisałem ten wpis.

Jak o czymś zapomniałem to napisz proszę to w komentarzu.

2 komentarze

  1. Autor haiku dodany 25 czerwiec, 2021

    Bardzo fajne porady i jak najbardziej dla osoby, która nie ma pojęcia jak przeprowadzić migrację na pewno się przyda. Gorzej jeśli podczas przenoszenia serwisu okaże się, że coś nie tak zrobiliśmy to wtedy kopia zapasowa będzie na wagę złota.

  2. Autor mkane dodany 25 czerwiec, 2021

    Cieszę się, że mogłem pomóc.