> For the complete documentation index, see [llms.txt](https://kompendium.cloudlets.zone/kompendium/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kompendium.cloudlets.zone/kompendium/zrob-to-sam/migracja-dzialajacej-strony-wordpress.md).

# Migracja działającej strony WordPress

## Darmowa migracja WordPress na Cloudlets.Zone

Ta instrukcja pomoże Ci przeprowadzić płynną migracje witryn WordPress od dowolnego dostawcy hostingu do naszej chmury na [Cloudlets.Zone](https://app.controller.cloudlets.zone/). Co ważne, proces jest całkowicie odwracalny, bo finalnie będziesz w posiadaniu dwóch działających instalacji WordPress, a wpisami domenowymi w DNS (serwer nazw) określisz, która instalacja będzie widoczna w Internecie.

Zaczynamy od uruchomienia nowej instalacji WordPress przy użyciu wstępnie skonfigurowanych pakietów dostępnych w naszym marketplace. Jeśli jeszcze nie masz konta na Cloudlets.Zone, tu znajdziesz [instrukcję jak je założyć](/kompendium/konto/zakladanie-nowego-konta.md#zakladanie-nowego-konta).

1. Po zalogowaniu do Panelu Usług na Cloudlets.Zone wejdź na **Marketplace**, a następnie wybierz preferowaną paczkę instalacyjną WordPress. Poniżej w tabelce znajdziesz przeciętne koszty miesięczne. Zwracamy uwagę, że koszty zależą od ruchu jaki obsługuje witryna i przez to mogą się istotnie różnić od poniższych przykładów. Chmura rozliczana jest za rzeczywiste użycie, a nie za limity. Więcej o opłatach [znajdziesz tutaj](/kompendium/faq/rozliczenie-za-uzycie.md).

![](/files/-Mhdp6kHBzpLx-tTh4wa)

| Rodzaj instalacji **WordPress**                                    | Średni miesięczny koszt |
| ------------------------------------------------------------------ | ----------------------- |
| WordPress **Cluster Kit 2** (LiteSpeed + GlusterFS + CDN) pełne HA | 360 zł                  |
| WordPress **Cluster Kit 2** (LiteSpeed + CDN)                      | 300 zł                  |
| WordPress **Standalone Kit** (LiteSpeed)                           | 70 zł                   |
| WordPress **Standalone Kit** (NGINX)                               | 40 zł                   |

W każdej z dwóch paczek WordPress będzie można indywidualnie zdecydować, jakie składowe zawierać będzie docelowa instalacja. Generalnie, warto wiedzieć, że Cluster Kit 2, to WordPress z nadmiarowością, a więc klaster wysokiej dostępności (HA). Każda warstwa, a więc *load balancer*, *aplikacja, baza danych* i *repozytorium* będzie uruchomiona na co najmniej dwóch niezależnych kontenerach rozłożonych na różnych serwerach. Sprawia to, że całość jest odporna na awarie oraz przygotowana na przyjęcie bardzo dużych obciążeń.

{% hint style="info" %}
**Uwaga!** Jeśli zamierzasz przeprowadzić migrację WordPress z klastrem Galera, upewnij się, że wszystkie tabele w Twojej bazie danych mają **jawny klucz podstawowy,** w postaci indeksu jedno- lub wielokolumnowego. Zignorowanie tego wymagania spowoduje niepowodzenie replikacji. Możesz zapoznać się z pełną listą [ograniczeń klastra Galera](https://mariadb.com/kb/en/mariadb-galera-cluster-known-limitations/).
{% endhint %}

2\. Zaloguj się do *serwera aplikacji* przez SSH i wygeneruj parę kluczy za pomocą polecenia:

```
ssh-keygen
```

Nie trzeba podawać nazwy pliku, ani hasła. System podstawi wartości domyślne, tak jak w tym przykładzie.

![](/files/-MhhGtZyyc7OTFdbrQ6P)

3\. Wyświetl właśnie wygenerowany klucz publiczny za pomocą polecenia:

```
cat .ssh/id_rsa.pub
```

&#x20;Następnie zaznacz i skopiuj jego zawartość do schowka za pomocą skrótu **Ctrl+Shift+С** (lub **Сmd +C** ).

![](/files/-MhhKGb_MHqk7tiRl__Q)

4\. Dodaj klucz publiczny do środowiska WordPress, wklejając go ze schowka (do **Kluczy SSH** dostaniesz się z poziomu Panelu Usługi poprzez **Ustawienia** w menu głównym).

![](/files/-MhhL6LS15cAWByt1Ng9)

5\. Przejdź do panelu administracyjnego **źródłowej witryny** WordPress, czyli tej którą chcesz przenieść do Cloudlets.Zone. Znajdź, zainstaluj i aktywuj wtyczkę [Migrate Guru](https://wordpress.org/plugins/migrate-guru/).

![](/files/-MhhP8VYP-aHhbMH_b2Q)

&#x20;6\. Przejdź do zakładki wtyczki, wypełnij pole e-mail, zaakceptuj warunki i naciśnij **Migrate Site.**

![](/files/-MhhPoDLJd90LS9qJAVw)

{% hint style="warning" %}
**UWAGA!** Cały proces transferu bazy danych, ustawień i wtyczek odbywać się będzie z użyciem serwerów pośredniczących Blogvault. Oznacza to, że akceptujesz fakt udostępnienia tych danych firmie trzeciej. Przed rozpoczęciem sugerujemy zapoznać się z warunkami usługi, a w szczególności *Content Rights*! Jeśli nie akceptujesz takich warunków transferu, przejdź do [instrukcji z wykorzystaniem narzędzi płatnych](https://app.gitbook.com/@cloudlets-zone/s/kompendium/~/drafts/-MhdjiBTlEQeVEeOqDwm/zrob-to-sam/migracja-dzialajacej-strony-wordpress#migracja-wordpress-na-cloudlets-zone-z-uzyciem-platnej-wtyczki).
{% endhint %}

{% hint style="info" %}
Migracja nie oznacza usunięcia strony źródłowej. Po udanej migracji dysponować będziesz dwoma identycznymi seriwsami WordPress na róznych serwerach. Zmianą rekordu A w DNS (serwer nazw) zdecydujesz, który strona będzie prezentowana publicznie.
{% endhint %}

&#x20;7\. Wybierz protokół **FTP** na następnej stronie.

![](/files/-MhhTP-pOLMHlsQU1WS2)

7\. Następnie wypełnij formularz wybierając protokół bezpiecznego przesyłania plików **SFTP.** Poniżej znajdziesz podpowiedzi, [gdzie znajdują się wszelkie niezbędne dane](#dane-do-formularza-migracji).

![](/files/-MhhZziHKf2f7yyQ1ppU)

* **Destination Site URL** (adres URL witryny docelowej) to łącze do nowej witryny WordPress (domena tymczasowa generowana na naszej platformie po utworzeniu środowiska). W naszym przykładzie mamy domenę tymczasową: *iwonakrupa.node.cloudlets.zone*&#x20;
* **FTP Type** (typ protokołu FTP) - wybieramy SFTP, jako zapewniający szyfrowaną migrację.&#x20;
* **Destination Server IP/FTP Address** (adres IP/FTP serwera docelowego) adres i port można pobrać z pól Host i Port w sekcji dostępu SSH pulpitu usługi Cloudlets.Zone.
* **FTP Username** (nazwa użytkownika FTP) należy skopiować z odpowiedniego pola z automatycznie wygenerowaną nazwą użytkownika, która w naszym przykładzie wynosi **3145-25.**

### Dane do formularza migracji

A. Wejdź w **Ustawienia / Dostęp SSH / SFTP** i wybierz właściwej środowisko.

![](/files/-MhhVC-rpNQiyuGSplzc)

B. Po wybraniu środowiska z domeną docelową, uzyskasz wszelkie dane potrzebne do wypełnienia formularza migracji.

![](/files/-MhhdspIxLil4SRxtL5G)

C. W formularzu zamiast hasła użyjemy **klucza prywatnego**.&#x20;

![](/files/-Mhh_F_1w475xb9-zXmx)

* **SSH Key** (klucz RSA) to prywatny klucz RSA (nie mylić z publicznym) wygenerowany w kroku 2. Możesz go wybrać i skopiować z pliku **.ssh/id\_rsa**  katalogu domowego użytkownika za pomocą terminala za pomocą **skrótu Ctrl+Shift+С** (lub **Cmd + C**).&#x20;

```
cat .ssh/id_rsa
```

![](/files/-MhhiD0ol4VLumWTekbt)

* **Directory Path** (katalog) to ścieżka, w której zainstalowana jest aplikacja WordPress. Na Cloulets.Zone jest to katalog **/var/www/webroot/ROOT/**

8\. Pozostaje już tylko przewinąć na dół strony i wcisnąć przycisk **Migrate** (Migruj).

![](/files/-MhhiKXWlneELWRqimEV)

9\. Po przejściu walidacji danych rozpoczyna się procedura migracji, która może potrwać kilka minut zależnie od wielkości strony.

![](/files/-MhhivcQc5_fDciXGLP8)

Po pomyślnej migracji możesz odwiedzić swoją witrynę, klikając przycisk **Visit Migrated Site** (Odwiedź witrynę po migracji) w domenie tymczasowej.&#x20;

![](/files/-MhhjEKQYq27XtVcTs9l)

![](/files/-MhhkBu75OW6k1OtPQHU)

{% hint style="info" %}
Zwróć uwagę, że od teraz do *wp-admin* obowiązuje Cię *loging* i *hasło* ze źródłowego serwisu WordPress. Bez zmian pozostaje hasło i adres *phpmyadmin* wygenerowane dla strony w trakcie tworzenia środowiska WordPress na Cloudlets.Zone.
{% endhint %}

10\. Pozostaje już tylko zmienić rekord A w DNS, czyli przekierować ruch z domeny na właściwy serwis i wygenerować ponownie certyfikat SSL dla domeny.

11\. W tym celu należy zalogować się do panelu dostawcy domeny, w tym przypadku to LH i podmienić adres IP na właściwy.

![](/files/-MhiA53VXpwEhIcOWQDI)

Dedykowany publiczny adres IP znajdziecie w Panelu Usługi Cloudlets.Zone przy środowisku lub na poziomie wasrtwy load balancer jeśli wybraliście instalację WordPress w postaci klastra wysokiej dostępności.

![](/files/-MhiAOxrosp0fTRlYzEg)

W naszym przypadku powinno to wyglądać tak:

![](/files/-MhiB9ikamlX4jeGDtZT)

{% hint style="warning" %}
Rozpropagowanie zmiany w DNS może potrwać od kilku minut do kilku godzin. Dlatego, przed wykonaniem kroku 12, czyli wygenerowaniem nowego certyfikatu SSL, należy najpierw sprawdzić, czy domena rozgłasza już z nowy adres IP. W innym przypadku, operacja generowania SSL zakończy się niepowodzeniem.
{% endhint %}

Do weryfikacji jaki pod jakim adresem IP funkcjonuje domena, można użyć funkcji DNS Lookup w [DNS Chcecker](https://dnschecker.org). W naszym przypadku zmiana rozgłosiła się w ciągu minuty.

![](/files/-MhiBm9QUNGF3Qkh6zAR)

12\. Skoro adres IP jest już z puli nowego dostawcy - Cloudlets.Zone można przejść do generowania nowego certyfikatu SSL. W tym celu w warstwie aplikacji środowiska docelowego wybierz zakładkę **Więcej**, która reprezentuje **dodatki i rozszerzenia.**&#x20;

![](/files/-MhiDy1P5Dc_zVo98zLP)

13\. Następnie, kliknij **Configure** (konfiguruj), aby wpisać adres własnej domeny, która zastąpi domenę tymczasową, którą w tym przypadku jest *iwonakrupa.node.cloudlets.zone*. Wpisujemy domenę i subdomenę bez spacji rozdzielając przecinkiem. Można podać więcej domen, które zarejestrowane zostaną jako bliźniacze, o ile w ich DNS będzie właściwy rekord A lub CNAME.

![](/files/-MhiFDgkyk9Ad27QSViF)

14.Wciśnięcie zastosuj spowoduje nie tylko wygenerowanie certyfikatu SSL, ale także zmieni domyślne adresy w panelu WordPress. Certyfikat ważny jest 90 dni i odnawiany będzie automatycznie, co 60 dni, o czym każdorazowo system powiadomi Cię poprzez e-mail.

![](/files/-MhiG6RjK8v1uD9Z6UNT)

Po 3-4 minutach i odświeżeniu (Ctr+F5) okna przeglądarki strona ładować powinna się już z nowego miejsca.

{% hint style="warning" %}
**Na koniec**, rekomendujemy usunięcie pary kluczy użytych do migracji, gdyż klucz prywatny został skompromitowany poprzez wklejenie go do formularza firmy trzeciej. Klucze znajdziecie w **Ustawienia / Klucze SSH**.
{% endhint %}

![](/files/-Mhhb5bU89obYcsUT0cP)

{% hint style="info" %}
W trakcie migracji przenoszone są wszystkie wtyczki, nawet te które nie będą już potrzebne. Warto sprawdzić ich przydatność w nowym środowisku. W szczególności należy sprawdzić, czy starte wtyczki do buforowania, jak na przykład: [W3 Total Cache](https://pl.wordpress.org/plugins/w3-total-cache/), nie powodują konfliktów z LiteSpeed, czy NGINX, a już na pewno należy wczyścić całą ich pamięć podręczna.
{% endhint %}

## Migracja WordPress z użyciem wtyczki płatnej

Dla tych, którzy nie chcą udostępniać danych całej witryny firmie trzeciej, szczególnie gdy przetwarzają dane osobowe, proponuję użycie [WPvivid Backup Pro](https://wpvivid.com/product/wpvivid-backup-pro-trial). Tak się składa, że producent daje możliwość przetestowania wtyczki przez 14 dni (tak było w czasie przygotowywania tej instrukcji).&#x20;

WPvivid jest dość rozbudowanym narzędziem, dzięki temu możemy dostosować aplikację do warunków naszej migracji. Na przykład, przydatną opcją jest modyfikacja apetytu WPvivid Backup Pro na zasoby w trakcie wykonywania kopii zapasowych i migracji. Funkcja ta może okazać się kluczowa, gdy postanowimy zmigrować serwis z bardzo słabego hostingu lub odwrotnie, do bardzo limitowanego hostingu.

1.Zaczynam od założenia konta próbnego [na WPvivid](https://wpvivid.com/my-account). Podajemy e-mail na który aplikacja prześle nam wygenerowane automatycznie hasło.

![](/files/rlAdWSyHwUKl6nmiDnUg)

2\. Po zalogowaniu wybieramy opcję dodania *Planu* do konta - klikamy "get one".

![](/files/T0ogTDd9N6penWKoBC4d)

3\. Mamy możliwość skorzystania z 14 dniowego okresu próbnego, a do migracji ograniczenie do dwóch domen jest wystarczające. Klikamy przycisk "GET STARTED".

![](/files/SJl0KUTlbf7CYOoKfoB9)

4\. Po wypełnieniu formularza i złożeniu zamówienia za 0 USD (karta kredytowa nie będzie potrzebna) w dashboardzie zobaczymy produkty wraz z datą wygaśnięcia licencji.&#x20;

![](/files/rPjG5vND1CBRF7UydeUL)

5\. Wchodzimy do sekcji licencje by wygenerować dwa klucze, dla strony źródłowej (tej którą zamierzamy przenieść) i strony docelowej. W tym celu dwa razy klikamy klawisz "Create a child license".

![](/files/f5t2deVqabtkPgygwHY1)

6\. Na koniec należy pobrać aplikację WPvivid PRO, gdyż nie jest ona dostępna na publicznym marketplace WordPress. Wchodzimy w sekcję "DOWNLOADS" i pobieramy aplikację na dysk lokalny.

![](/files/zQz2veFiuMWerZon3uMk)

7\. Teraz wracamy do strony źródłowej by zainstalować plugin. Po zalogowaniu do WordPress z uprawnieniami administracyjnymi wybieramy "Wtyczki" z bocznego menu, a następnie wysyłamy wtyczkę WPvivid Pro z dysku lokalnego na serwer - instalujemy i aktywujemy.

![](/files/0UxNOPreo7BjvkyUAWwh)

8\. W menu bocznym pojawi się sekcja **WPvivid Plugin,** gdzie z listy wybieramy **License.**&#x20;

![](/files/EpeXo5l7F0zcLL8vBmzq)

9\. Teraz wystarczy wkleić w pole *License* jeden z kluczy licencyjnych wygenerowanych w korku 5.

![](/files/Vbx41xfbQ1gcLnA01PSL)

10\. Po aktywacji dostępna będzie lista wtyczek. Instalujemy przed wszystkim **WPvivid Backup Pro Addon**. Pozostałe dodatki nie będą potrzebne do migracji.

![](/files/T3UxIQRRo6qQmUOlOP1O)

11\. To samo wykonujemy na stronie docelowej. Jeżeli nie masz jeszcze zainstalowanego WordPress'a na Cloudlets.Zone, skorzystaj z naszej [instrukcji instalacji](/kompendium/aplikacje/wordpress-z-cdn-dla-firm.md). Następnie, postępuj zgodnie z krokiem 7 do 9, aby zainstalować plugin WPvivid Pro na stronie docelowej. Po prawidłowej instalacji i aktywacji licencji, w panelu usługi WPvivid powinniśmy zobaczyć przypisanie licencji do strony źródłowej i docelowej.

![](/files/dfLraIMplZgJEKkbC6Wf)

12\. Czas na przygotowanie do migracji, którą można wykonać na dwa sposoby. Najprostszą, a zarazem najszybszą metodą jest wykorzystanie funkcji migracji automatycznej.

{% hint style="warning" %}
WAŻNE

1. Przed migracją wyłączyć należy wszelkie wtyczki buforujące zawartość serwisu, jak np.: W3 Total Cache, WP Rocket, LiteSpeed Cache, itp. oraz przekierowujące (301, trybu konserwacji). Na chwilę migracji warto także wyłączyć wtyczki bezpieczeństwa. **Wyłączenie wtyczek dotyczy strony źródłowej i docelowej!**
2. WPvivid Backup Plugin Pro nie przywraca plików *.htaccess* i *wpconfig.php*, ponieważ może to powodować problemy w witrynie docelowej. W razie potrzeby należy je skopiować ręcznie.&#x20;
3. WPvivid wykluczy się z kopii zapasowej lub migracji. Możesz wyeksportować ustawienia wtyczki ze starej witryny i zaimportować je do nowej docelowej witryny na stronie *Ustawienia wtyczki*.&#x20;
4. Podczas migracji motywu potomnego, który opiera się na motywie głównym (nadrzędnym). Upewnij się, że uwzględniłeś również główny motyw, jeśli nie jest aktywny.
   {% endhint %}

13\. Zaczynamy od strony DOCELOWEJ (nie na odwrót!), gdzie po wyłączeniu pluginów bezpieczeństwa i buforujących wchodzimy do menu **WPvivid Plugin** do funkcji *Auto-migration* i generujemy klucz.

![](/files/m4Bu2GRljiirUwscatMX)

14\. Wygenerowany klucz (ważny 8 godzin), kopiujemy i wklejamy w zakładce *Auto-Migration* strony ŹÓDŁOWEJ. Sprawdzamy, czy status połączenia (OK), a co najważniejsze, <mark style="color:orange;">czy transfer zostanie wykonany we właściwym kierunku!</mark> W naszym przypadku, migrowaliśmy stronę Cloudlets.Zone z hostingu na GoDaddy, do naszej chmury do domeny tymczasowej. jeżeli wszystko się zgadza, zatwierdzamy migracje przyciskiem "*Clone then Transfer"*.

![](/files/LnwrzkINMK8kHgjBkP4I)

{% hint style="info" %}
WPvivid Pro, ma możliwość włączenia opcji, które oszczędzać będą zasoby podczas transferu. Może się to przydać w przypadku, gdy strona źródłowa jest rygorystycznie limitowana przez dostawcę hostingu. W ustawieniach wtyczki - **Settings**, zakładka **- Backup (Advanced)**, proponujemy włączyć "*Enable eco mode for shared hosting*".&#x20;

Poniżej przykład konfiguracji dla hostingu o bardzo limitowanych zasobach.

![](/files/uG24qAQ1ZW6vQDVC8CzH)
{% endhint %}

Postęp transferu można śledzić w aplikacji źródłowej.

![](/files/Tni3mZ98kFGUBi7IredH)

15\. Zakończenie transferu oznacza, że w WordPress'ie docelowym pojawi się kopia serwisu gotowa do przywrócenia.&#x20;

![](/files/zjulpdO1MBHUUQN2TkPw)

16\. Po kliknięciu przycisku "Restore" zobaczymy ekran podsumowujący, gdzie możliwe będzie sparamteryzowanie metody przywrócenia serwisu, czyli odtworzenia z kopii strony źródłowej.

![](/files/dvq6jctc7GSnecOXwITW)

17\. W drugim kroku właściwie tylko potwierdzamy pełne odtworzenie serwisu.

![](/files/ESemteB7vwbiM8H0F2FP)

Wciśnięcie przycisku "Restore Now" uruchomi proces.

![](/files/8AxXmkZ8gRZMczI8SyK7)

Na koniec powinniśmy zobaczyć taki komunikat.&#x20;

![](/files/9rdjjfeP8bHctZZUw1vA)

Jeżeli wystąpi problem, warto zmodyfikować parametry dot. metody dostępu do bazy danych i za drugim razem zaznaczyć 3 opcje związane z czyszczeniem ewentualnych pozostałości po nieudanej próbie. Patrz krok 16.

![](/files/9DMPOxoIlntonEP0Q8AI)

18\. Teraz trzeba będzie zalogować się do przetransferowanego serwisu z użycie poświadczeń (użytkownika i hasła) serwisu ŹRÓDŁOWEGO.

19\. Na koniec pozostaje podmiana domeny, czyli modyfikacja DNS i uruchomienie wtyczek bezpieczeństwa i buforujących. Warto skorzystać z instrukcji [jak podłączyć własną domenę](/kompendium/aplikacje/wordpress-z-cdn-dla-firm.md#podlaczanie-wlasnej-domeny).

{% hint style="danger" %}
Przedstawiona instrukcja ma wyłącznie charakter poglądowy. W żadnym wypadku nie należy traktować tego artykułu jako naszej rekomendacji do stosowania wymienionych narzędzi. Wykorzystanie wymienionych wtyczek wyłącznie na własną odpowiedzialność!&#x20;

UWAGA. --- Według stanu na 22 marca 2022, plugin WPvivid Pro, wykorzystywany do wykonywania automatycznych kopii zapasowych WordPress, ma tendencję do alokowania i niezwalniania pamięci operacyjnej. W efekcie, w niektórych zastosowaniach, środowiska zużywają 2x więcej cloudletów!
{% endhint %}
