Kiedy rozwijamy stronę WordPress w środowisku lokalnym lub w tymczasowej lokalizacji (np. na serwerze deweloperskim, tymczasowej domenie), w końcu zajdzie potrzeba przeniesienia WordPressa na docelowy hosting i domenę. W tym artykule opiszę szybki i prosty sposób jak przenieść stronę WordPress lub sklep WooCommerce na nowy serwer.

Opisana procedura będzie też przydatna w przypadku kiedy chcemy sklonować WordPressa w celu eksperymentowania ze zmianą motywu lub wtyczkami i różnymi rozwiązaniami, a jednocześnie nie chcemy robić zamieszania w witrynie, z której aktualnie korzystają nasi użytkownicy.

Zmiana hostingu może być też konieczna kiedy chcemy przyspieszyć działanie WordPressa a obecny nie dość że jest mało wydajny to jeszcze nie oferuje nowoczesnych rozwiązań takich jak: HTTP/2, CDN, czy darmowy SSL. Aby artykuł był użyteczny dla największej liczby osób, dokonamy przeniesienia w najbardziej skomplikowanym scenariuszu tzn. zmieniamy zarówno domenę jaki i serwer.

Zobacz jak zainstalować WordPressa w Google Cloud. Jeżeli znasz środowisko Amazon sprawdź instrukcję instalacji WordPress w AWS. Zobacz też jakich rzeczy szukać i jakie wymagania powinien spełniać hosting WordPress.

Tego rodzaju migracji wykonuje za każdym razem kiedy publikuję nową stronę lub kiedy trzeba zmienić serwer lub hosting. Dlatego jest to technika sprawdzona i co więcej, nie wymaga instalowania na oryginalnej witrynie żadnych wtyczek ani nie wymaga przeprowadzenia modyfikacji. Metoda ta jest najszybsza, pewna i zajmuje naprawdę kilka minut.

Zmiana domeny WordPress

Zmiana samej domeny to zaledwie kilka kliknięć. Przechodzimy do ustawień ogólnych WordPressa i wpisujemy nową domenę w dwóch polach:

Zmiana domeny w ustawieniach głównych WordPress

Z taką sytuacją możemy mieć do czynienia, kiedy tworzymy stronę na serwerze bez podłączonej domeny (np. posługujemy się adresem IP) a potem kupujemy domenę i chcemy aby strona z nią współpracowała. Po wykonaniu tej czynności należy sprawić aby domena wskazywała na ten sam hosting. Można to zrobić za pomocą

  • edycji pola „A” domeny,
  • podłączenie domeny w panelu do zarządzania hostingiem (np. opcja multidomen, lub multistron),
  • edycja wpisów w VirtualHost jeżeli używamy rozwiązania VPS i administrujemy w systemie operacyjnym.

Wszelkie ścieżki w systemie WordPress (linki, atrybuty) są zapisywane w postaci bezwzględnej dlatego musimy je w bazie podmienić. Kiedy już potrafimy się zalogować do panelu WordPressa instalujemy wtyczkę Better Search Replace i adres IP lub poprzednią domenę zmieniamy na nową:

Podmiana adresów doemeny w bazie danych za pomocą wtyczki Better Serch Replace

Zmiana serwera WordPress

Zmiana hostingu WordPress choć składa się z kilku kroków nie jest niczym skomplikowanym. Wystarczy skopiować pliki i wykonać zrzut bazy danych i obie rzeczy przenieść na nowy serwer. Na sam koniec wystarczy dokonać prostych zmian w kilku miejscach.

Musisz mieć dostęp do:

  • Panelu WordPressa,
  • Plików na koncie FTP
  • Bazy danych na serwerze lub za pośrednictwem aplikacji phpMyAdmin (dane logowania do bazy są zapisane w pliku wp-config.php),

Przeniesienie ułatwi (ale nie jest to wymagane):

  • dostęp do konsoli SSH,
  • moduł ZIP zainstalowany na serwerze

Krok 1: Kopiowanie plików

Aby skopiować pliki należy zalogować się do konta FTP za pomocą wybranej aplikacji (np. FileZilla). Kopiowanie pojedynczych folderów z plikami za pomocą konta FTP może trwać długo i powodować problemy. Na niektórych hostingach są ustawione blokady ilości żądań na minutę – w tej technice niektóre pliki mogą się nie skopiować prawidłowo.

Kopiowanie plików za pomocą FTP

Dużo szybszym rozwiązaniem jest użycie SSH i spakowanie wszystkich plików do ZIP (to naprawdę jest bardzo proste, wystarczy pobrać program PuTTy.

Komenda, która zarchiwizuje pliki wewnątrz folderu w którym się znajdujemy to.

zip -r wordpress.zip * 

Jeżeli nie mamy dostępu do SSH możemy stworzyć własny skrypt do pakowania i rozpakowywania plików w PHP.

Ten plik można szybko pobrać za pomocą FTP. Jeżeli przenosimy lokalną instancję WordPressa możemy użyć ulubionej aplikacji do archiwizowania:

Pakowanie plików za pomocą programu WinRar

Po skopiowaniu tego pliku dowolną metodą na nowy serwer, możemy uzyć komendy

unzip wordpress.zip

Jeżeli po wpisaniu tych komend otrzymujemy (Command not Found) to wystarczy zainstalować rozszerzenie ZIP:

sudo apt-get install zip

Jeżeli nie mamy wystarczających uprawnień lub dostępu do SSH, możemy wykorzystać prosty skrypt PHP, który rozpakuje paczkę znajdującą się w tym samym folderze:

 <?php  
system ("unzip wordpress.zip"); 

Logowanie do SSH jest możliwe za pomocą programu PuTTY. W przypadku hostingu wirtualnego powinniśmy otrzymać login i hasło od firmy hostingowej tak samo jak do konta FTP. Często login i hasło do SSH są identyczne z tymi w FTP.

Krok 2: Eksport bazy danych MySQL

Aby wykonać kopię bazy danych możemy użyć programu phpMyAdmin:

Eksportowanie bazy danych metodą „prostą”

Eksport bazy danych można wykonać w konsoli (zakładamy, że użytkownikiem jest root a baza danych nazywa się wordpress):

mysqldump -p -u root wordpress > wordpress.sql

Krok 3: Import bazy danych

Dokonujemy odwrotnego procesu na nowym hostingu. Tworzymy bazę danych i używamy opcji import w phpMyAdmin wskazując pobrany wcześniej plik.

Plik SQL też można importować za pomocą komendy:

mysql -p -u root wordpress < wordpress.sql

Ta technika przyda się wówczas kiedy baza jest bardzo duża a ustawienia serwera nie pozwalają aplikacji phpMyAdmin na pobranie pliku w formularzu (upłynie limit czasu żądania dla procesora lub plik nie mieści się w limicie upload_max_filesize).

Eksport i import baz danych może być skomplikowany w przypadku stosunkowo dużych baz danych. Ważne jest także to aby silniki MySQL były w tej samej wersji. Czytaj więcej jak radzić sobie z potencjalnymi problemami w przypadku prac administracyjnych związanych z bazami danych w osobnym artykule: Problemy z bazami danych MySQL i ich proste rozwiązania.

Krok 4: Edycja pliku wp-config.php

Kiedy pliki są już przeniesione a na nowym hostingu baza zaimportowała się prawidłowo, przechodzimy do pliku wp-config.php w głównym folderze WordPressa. Znajduje się tam adres, nazwa, użytkownik i hasło do bazy danych. Musimy je zmienić aby framework WordPressa mógł się połączyć z nową bazą.

Edycja pliku wp-config.php

Krok 5: Edycja pól home i siteurl w bazie danych

Aby móc się zalogować do Kokpitu na nowym serwerze, musimy zmienić pole, home i siterul w tabeli wp_options aby reprezentowały one nową domenę:

Edycja pól siteurl i home w tabeli wp_options

Krok 6: Podmiana domeny w adresach url

Charakterystyczne dla systemu WordPress jest to, że zapisuje on w bazie danych ścieżki i linki do wszystkich stron w postaci bezwzględnej (czyli zapisując każdorazowo z natury niezmienną domenę główną). Ma to swoje zalety i wady. Musimy teraz zalogować się do kokpitu i zainstalować wtyczkę Better Search Replace i dokonać masowej podmiany ciągu starej domeny na nową. Opis tej czynności jest podany na początku artykułu – przy zmianie domeny.

Oczywiście, zaawansowani użytkownicy mogą dokonać ręcznej podmiany ciągów bezpośrednio w pliku SQL w kroku 3. za pomocą dowolnego edytora tekstowego z funkcją „Znajdź i zamień”. Tak czy inaczej wtyczka Better Search Replace przyda się jeszcze nie raz.

Krok 7: Resetowanie bezpośrednich odnośników

Przeniesiony z plikami plik .htaccess zawiera jeszcze wpisy dla starej lokalizacji. Można je łatwo dostosować do nowej strony przechodząc do Ustawienia >> Bezpośrednie odnośniki zmieniając najdrobniejszą rzecz i klikając na przycisk „Zapisz zmiany”. Oczywiście tę zmienioną rzecz można potem przywrócić na pierwotne ustawienie.

Od tej pory nasz witryna WordPress lub sklep WooCommerce będą działać w nowej lokalizacji dokładnie tak jakby były tam od początku zainstalowane.

Zmiana serwera WordPress bez przerwy w działaniu

Jest jeszcze jeden scenariusz, który nie zakłada zmiany domeny a tylko zmianę samego serwera. Z tym mamy do czynienia kiedy chcemy zmienić dostawcę serwera (bo przykładowo znaleźliśmy lepszą ofertę lub bardziej odpowiednią konfigurację) lub przenosimy WordPressa z hostingu wirtualnego na VPS (lub odwrotnie) u tego samego dostawcy. Wszystkie kroki są już opisane wystarczy tylko wykonać niektóre zgodnie z tą kolejnością. To pozwoli zachować zerowy downtime w działaniu witryny. Podmiana serwera będzie niemal niezauważalna z perspektywy internautów (zakładając że nikt nie będzie aktualnie zalogowany do panelu lub klient aktualnie nie dokonuje zakupów):

  1. Wykonujemy kopię bazy danych (sqldump) i przenosimy ją na nową bazę na nowym serwerze (jeżeli będziemy korzystać z tej samej bazy np. w chmurze to można to oczywiście pominąć)
  2. Pakujemy i przenosimy pliki z poprzedniego serwera na nowy.
  3. Po przeniesieniu plików, edytujemy plik wp-config.php według instrukcji w poprzednich krokach (tak aby wskazywał an nową bazę),
  4. Zmieniamy konfigurację domeny aby wskazywała na nowy serwer. Edycja rekordu „A” lub edycja adresów DNS.

W tym kroku nie używamy Better-Search Replace ani nie edytujemy żadnych ustawień, ponieważ nie zmieniają się. Przed wykonaniem takiej migracji należy się upewnić czy serwery są ze sobą kompatybilne.

W zależności od ustawień propagacji w DNS, będzie moment (kilka sekund lub minut), w którym część klientów korzysta jeszcze ze starej strony z powodu zapamiętywania odpowiedzi DNS, które są aktualizowane co pewien czas w przeglądarce. Dlatego jeżeli mamy taką możliwość i baza danych jest dostępna publicznie, to przed punktem 2. na poprzednim serwerze edytujemy plik wp-config.php tak, aby wskazywał na nową bazę danych.

Czytaj więcej o przenoszeniu stron, migracji lub zmianach domen w osobnym artykule, który kładzie nacisk na tematy i problemy związane z SEO i indeksowaniem: Zmiana strony internetowej (migracja) na nową.

Alternatywne techniki migracji WordPressa

Migracja WordPressa jest możliwa za pomocą WP-CLI czyli interfejsu do zarządzania WordPressem z linii komend. Technika ta jest sybka i wygodna kiedy lubimy korzystać z konsoli. Nie można z niego skorzystać na każdym hostingu.

Istnieją też wtyczki do wspomagania migracji ale zupełnie nie rozumiem po co z nich korzystać. Nie robią niczego ponadto co opisałem w tym wpisie a ewentualnie mogą tylko skomplikować proces w wyniku braku kompatybilności z dowolną wtyczką, serwerem, wersją PHP itd… Już lepiej poświęcić te parę minut i odszukać dane do phpMyAdmin i konta FTP.

Podsumowanie

Przeniesienie strony WordPress na inny hosting nie stanowi problemu. Wykonanie tych działań w takiej kolejności daje pewność, że strona WordPress będzie działać jak należy.

Jeżeli nie czujesz się na siłach zleć tego typu prace koledze, który ma chociaż podstawowe pojęcie związane z administracją stron i konfigurowaniem hostingów. Jeżeli nie znasz nikogo, możesz się odezwać do dowolnej firmy, która zajmuje się WordPressem. Samodzielne próby i pakowanie się w różnego rodzaju wtyczki lub instalacje nowej strony i ręczne przenoszenie treści to tylko strata czasu i narażanie się na potencjalne problemy.

Źródła

Oceń artykuł na temat: Przenoszenie WordPress – zmiana hostingu i domeny
Średnia : 4.7 , Maksymalnie : 5 , Głosów : 27