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:

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ą:

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.

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:

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:

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ą.

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ę:

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):
- 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ąć)
- Pakujemy i przenosimy pliki z poprzedniego serwera na nowy.
- Po przeniesieniu plików, edytujemy plik wp-config.php według instrukcji w poprzednich krokach (tak aby wskazywał an nową bazę),
- 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.
Odpowiedz Anuluj odpowiedź